Git merge Vs Git rebase
C0
C1
C2 C3
C4
bugFix
main*
C0
C1
C2
C3’
bugFix
main*
Soufiane MOUHTARAM
Git flow Git merge 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.
Git flow Git Merge 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*
Git flow Git Merge 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*
Git flow Git Merge 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
Git flow Git Merge 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.
Git flow Git Merge 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*
Git flow Git Merge Vs Git Rebase
C0
C1
C2
C3’
bugFix
main*
C0
main*
C1
C2
bugFix
C3
git rebase bugFix

Gitflow : Git Rebase Vs Git Merge Docs.pdf

  • 1.
    Git merge VsGit rebase C0 C1 C2 C3 C4 bugFix main* C0 C1 C2 C3’ bugFix main* Soufiane MOUHTARAM
  • 2.
    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