Vous pouvez soit git merge master
o git rebase master
.
Si la branche n'a pas été distribuée à d'autres personnes, dans ce cas je préférerais git rebasement .
Parce que git rebase
donne l'impression que les modifications de la branche des fonctionnalités ont été effectuées par-dessus les modifications de la branche principale, ce qui simplifie le graphique de version.
Rebasement
En prenant l'exemple de l git rebase manual , git rebase master
dans la branche feature
:
A---B---C feature A'--B'--C' feature
/ --rebase--> /
D---E---F---G master D---E---F---G master
Cependant, git rebase
ne convient que lorsque personne d'autre ne travaille dessus, sinon il y aura de la confusion et du travail supplémentaire pour eux, car les anciens commits A, B, C sont maintenant remplacés par de nouveaux commits A', B', C', plus F et G qui n'étaient pas là avant.
Le résultat réel après git rebase master
dans la branche feature
c'est ça :
( A---B---C ) feature@{1}
/
/ A'--B'--C' feature
/ /
D---E---F---G master
commits A, B, C sont dangling après la rebase, mais sont atteignables à travers git reflog feature
como feature@{1}
.
Fusionner
Si quelqu'un a tiré votre branche, ou si vous l'avez poussée quelque part, vous devriez plutôt fusionner avec elle, pour éviter toute confusion et tout travail supplémentaire de l'autre côté. Voir Récupération d'un rebasement en amont .
C'est le résultat de git merge master
dans la branche feature
:
A---B---C feature A---B---C---M feature
/ --merge--> / ,---’
D---E---F---G master D---E---F---G master
Par ailleurs, si vous git merge feature
dans la branche master
cela ressemblerait à ceci :
A---B---C feature A---B---C feature
/ --merge--> / \
D---E---F---G master D---E---F---G---M master