Git flow Gitmerge Vs Git rebase
C0
C1
C2 C3
C4
bugFix*
main*
Git propose deux principales méthodes pour fusionner
plusieurs branches : le merge et le rebase.
Imaginons que deux développeurs, A et B, travaillent chacun
sur une branche différente. Une fois leur travail terminé, il
reste une étape importante : fusionner leurs contributions.
Cette fusion peut se faire de deux façons :
soit en intégrant directement les changements dans une autre
branche via un merge, soit en repositionnant l’historique de la
branche B après celui de la branche A via un rebase.
3.
Git flow GitMerge Vs Git Rebase
C0
main*
Étapes illustrées dans cette figure :
1- git branch main créer une branche main
2- git checkout main switcher vers le main
3- git commit –m ’’C0‘’ faire une commit C0
4- git commit –m ’’C1‘’ faire une commit C1
C1
1- git checkout – b bugFix créer une nouvelle branche et
switcher vers elle.
2- git commit –m ’’C2’’ faire une commit C2
C0
main
bugFix*
C1
C0
main
C1
C2
bugFix*
4.
Git flow GitMerge Vs Git Rebase
C0
main*
Étapes illustrées dans cette figure :
1- git branch main créer une branche main
2- git checkout main switcher vers le main
3- git commit –m ’’C0‘’ faire une commit C0
4- git commit –m ’’C1‘’ faire une commit C1
C1
1- git checkout – b bugFix créer une nouvelle branche et
switcher vers elle.
2- git commit –m ’’C2’’ faire une commit C2
C0
main
bugFix*
C1
C0
main
C1
C2
bugFix*
5.
Git flow GitMerge Vs Git Rebase
Étapes illustrées dans cette figure :
1- git checkout –b main switcher vers la
branche main.
2- git commit –m ‘’C3’’ faire une
commit C3.
C0
main
C1
C2
bugFix*
C0
Main*
C1
C2
bugFix
C0
main*
C1
C2
bugFix
C3
6.
Git flow GitMerge Vs Git Rebase
Étapes illustrées dans cette figure :
1- git merge bugFix
C0
main*
C1
C2
bugFix
C3
C0
C0
C1
C1
C2
C2
bugFix
bugFix
C3
C3
C3
C3
main*
main*
Pour fusionner la branche bugFix dans main, Il faut d’abord se
positionner sur la branche main :
git checkout main
Ensuite, on exécute la commande suivante pour effectuer la fusion :
git merge bugFix
Cela génère un nouveau commit de fusion (nommé ici C3), qui intègre
les modifications de la branche bugFix dans main.
7.
Git flow GitMerge Vs Git Rebase
La deuxième approche pour fusionner les deux branches consiste à utiliser
rebase, qui permet de réécrire l’historique de manière linéaire.
La principale différence entre merge et rebase réside dans la manière dont
l’historique Git est géré :
• Le merge crée un commit de fusion, conservant les historiques parallèles
des deux branches.
• Le rebase réécrit l’historique en plaçant les commits de la branche B après
ceux de la branche A, donnant un historique linéaire.
C0
C1
C2
C3’
bugFix
main*
8.
Git flow GitMerge Vs Git Rebase
C0
C1
C2
C3’
bugFix
main*
C0
main*
C1
C2
bugFix
C3
git rebase bugFix