Puoi o git merge master
o git rebase master
, in questo caso, preferirei git rebase .
Perché lo git rebase
rende come se le modifiche sul ramo della funzione fossero state apportate in cima alle modifiche sul ramo principale, il che rende il grafico della versione più semplice.
rebase
Prendendo l'esempio dal manuale di git rebase , git rebase master
nel ramo feature
:
A---B---C feature A'--B'--C' feature
/ --rebase--> /
D---E---F---G master D---E---F---G master
Tuttavia, git rebase
è adatto solo quando la filiale non è stata distribuita, o ci saranno confusione e lavoro extra a valle, perché i vecchi commit A, B, C sono ora sostituiti da nuovi commit A ', B', C ', più F e G che prima non c'erano.
Il risultato effettivo dopo git rebase master
in branch feature
è questo:
( A---B---C )
/
/ A'--B'--C' feature
/ /
D---E---F---G master
I commit A, B, C sono sospesi dopo il rebase, ma sono raggiungibili attraverso git reflog feature
.
Merge
Se qualcuno ha spostato il tuo ramo o l'hai spinto da qualche parte, dovresti invece fonderti in esso, per evitare confusione e lavoro extra dall'altra parte. Vedere Ripristino da rebase a monte .
Questo è il risultato di git merge master
nel ramo feature
:
A---B---C feature A---B---C---M feature
/ --merge--> / ,---’
D---E---F---G master D---E---F---G master
In alternativa, se sei git merge feature
nel ramo master
, sarebbe simile al seguente:
A---B---C feature A---B---C feature
/ --merge--> / \
D---E---F---G master D---E---F---G---M master