Pourquoi rebase
Rebase réécrit votre branche pour qu'elle semble commencer depuis le tip d'une autre branche, rejouant vos commits un par un.
Le rebase de base
git checkout feature/login
git fetch origin
git rebase origin/main
git status
git add <file>
git rebase --continue
Rebase interactif
git rebase -i HEAD~5
pick 1a2b3c4 Add login form
pick 5d6e7f8 Fix typo
pick 9a0b1c2 Refactor auth helper
pick 3d4e5f6 Add tests
pick 7a8b9c0 Address review feedback
Changez pick en :
reword- garder le commit, éditer le message.edit- pause pour amender.squash- combiner avec le précédent et fusionner les messages.fixup- combiner, jeter le message.drop- supprimer le commit.- Réordonner les lignes pour réordonner les commits.
La Règle d'Or
Ne rebase jamais des commits qui ont été poussés et consommés par d'autres.
Workflow autosquash
git commit --fixup <sha>
git rebase -i --autosquash main
Rerere pour les conflits répétés
git config --global rerere.enabled true