Git et rebase sont-ils équivalents ? Dans quels cas utiliser l'un ou l'autre ? Nous verrons que chacun a son utilité dans la gestion de branches et l'amélioration de l'historique.
15. #DevoxxFR
Quand faire un rebase ?
• Sur acceptation d'une pull request de feature, suivi d'un merge
fast-forward
• Lors d'un git pull
15
git config --global branch.autoSetupRebase always
git config --global pull.rebase = preserve
17. #DevoxxFR
Eviter les conflits
• Utiliser des retours à la ligne
• Eviter de travailler sur les mêmes fichiers
• Structurer correctement l'application en séparant les
fonctionnalités dans des fichiers différents
• Se répartir le travail intelligemment dans l'équipe
• Commiter régulièrement
• Faire des branches qui ne durent pas longtemps
17
19. #DevoxxFR
Réécrire l'histoire - rebase intéractif
pick f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added cat-file
# Rebase 710f0f8..a5f4a0d onto 710f0f8
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
19
25. #DevoxxFR 25
La branche est-elle
terminée ?
Intégrer une branche
durable ?
git merge --no-ff
Intégrer les changements
d'une branche durable ?
L'historique a été revue ?
non oui
git merge
Est-ce une branche durable ?
oui
non
git pull --rebase=preserve
git add
git commit
non
oui
non
non
oui
git rebase -i
oui