Ich habe eine neue Funktion in einem neuen Zweig entwickelt und nebenbei einige Änderungen in meinem Master-Zweig vorgenommen.
Ist es möglich, den Master-Zweig in meinen neuen Zweig zu integrieren, um ihn auf dem neuesten Stand zu halten, sodass ich nach Fertigstellung der neuen Funktion nicht zu viele Integrationskonflikte habe?
Antwort1
Du kannst entwedergit merge master
odergit rebase master
.
Wenn der Zweig nicht an andere Personen verteilt wurde, würde ich in diesem Fall bevorzugengit rebase.
Denn dadurch git rebase
wird es so gemacht, als ob die Änderungen am Feature-Branch zusätzlich zu den Änderungen am Master-Branch vorgenommen würden, was das Versionsdiagramm einfacher macht.
Neubasis
Am Beispiel derGit-Rebase-Handbuch, git rebase master
in der Branche feature
:
A---B---C feature A'--B'--C' feature
/ --rebase--> /
D---E---F---G master D---E---F---G master
Ist jedoch git rebase
nur geeignet, wenn niemand sonst daran arbeitet, da sonst Verwirrung entsteht und zusätzliche Arbeit entsteht, weil die alten Commits A, B, C jetzt durch die neuen Commits A', B', C' sowie F und G ersetzt werden, die vorher nicht da waren.
Das tatsächliche Ergebnis nach git rebase master
dem In-Branch feature
ist folgendes:
( A---B---C ) feature@{1}
/
/ A'--B'--C' feature
/ /
D---E---F---G master
Die Commits A, B und C bleiben nach dem Rebase hängen, sind aber über git reflog feature
erreichbar feature@{1}
.
Verschmelzen
Wenn jemand Ihren Zweig gezogen hat oder Sie ihn irgendwohin gepusht haben, sollten Sie stattdessen in ihn mergen, um Verwirrung und zusätzliche Arbeit am anderen Ende zu vermeiden. SieheWiederherstellen nach Upstream-Rebase.
Dies ist das Ergebnis git merge master
im Zweig feature
:
A---B---C feature A---B---C---M feature
/ --merge--> / ,---’
D---E---F---G master D---E---F---G master
Alternativ würde es, wenn Sie sich git merge feature
in branch befinden master
, folgendermaßen aussehen:
A---B---C feature A---B---C feature
/ --merge--> / \
D---E---F---G master D---E---F---G---M master