Ich habe einen neuen Git-Zweig B
aus einem Zweig A
mit Tracking-Option erstellt.
Wenn der A
Zweig durch wenige Commits aktualisiert wird, möchte ich auch die Commits auf ziehen B
, damit ich den Überblick behalten kann und manchmal später keine großen Änderungen vornehmen muss.
Wie soll ich das angehen? Wird es automatisch in Git gemacht?
Antworten:
Dies erfolgt nicht automatisch. Sie müssen Ihre Änderungen manuell von A nach B zusammenführen, was ziemlich einfach ist. Wechseln Sie einfach zu Zweig B und tun Sie es
Dadurch werden Ihre Änderungen automatisch von A nach B zusammengeführt. Solange Sie keine Konflikte haben, werden alle Änderungen in A als in B zusammengeführt markiert. Eine gängige Vorgehensweise besteht darin, tägliche Zusammenführungen vorzunehmen, dies hängt jedoch davon ab über die Anzahl der Benutzer / Commits, die Ihren Zweig verwenden.
quelle
git merge origin A
sollte dies weiter verbessernAngenommen, Ihr Aufruf zum Erstellen
B
wargit clone /path/to/server/A
, müssen Sie nur einegit pull
und Sie sind fertig. Sogit pull
funktioniert: zuerst holt ihm die Änderungen von der vorgeschalteten (die getrackten NiederlassungA
in Ihrem Fall), dann verschmelzen s diese Änderungen in den Zweig , dass Spuren der getrackten Zweig (B
in Ihrem Fall).Das Git-Buch und Pro Git diskutieren dieses Thema ausführlich, daher sind sie es wert, gelesen zu werden (wenn Sie es nicht eilig haben, lesen Sie auch den Rest).
quelle
git branch A
mit einer zufälligen Option erstellt, denke ich. Also, wenn ich nur Git Pull mache, beschwert sich Git darüberYou asked me to pull without telling me which branch you want to merge with...
pull
wird nur benötigt, wenn Sie Daten von einer Fernbedienung abrufen möchten. Wenn Sie eingeschaltet warenA
und es gerade getan habengit checkout -b B
, können Sie einfachmerge
(während Sie eingeschaltet sindB
, tippengit merge A
).Eine andere Möglichkeit ist ein
git fetch A
undgit merge A
.Blog-Beitrag, der den Grund dafür beschreibt
quelle
Hier ist, wie ich es zum Laufen gebracht habe.
Kurzfassung:
längere Version (erklärt) Ich werde / * als Kommentare verwenden * /
Wenn es keine Konflikte gibt, sollten Sie dort sein, wo Sie sein möchten. Wenn es Konflikte gibt, ist das meiner Meinung nach eine ganz neue SOF-Frage / Antwort.
quelle
git merge origin A
Sollte mich das davon abhalten, zum Elternzweig zurückzukehren, dort einen Zug zu machen und dann zum Kind zurückzukehren, um den Rest der Dinge zu erledigenFür die Fusion mit den Eltern:
Es ist sehr wichtig, beide Befehle auszuführen:
Nur zu Ihrer Information: Jetzt sehen Sie in Ihrem lokalen Verlauf / Ihren lokalen Protokollen eine Liste der Commits, aber dies wird Ihre Änderungen festschreiben, die dem übergeordneten Zweig in Ihrem lokalen nicht auf Remote-Konto zugeordnet sind.
Führen Sie einfach alle Änderungen auf Remote wie Github aus
quelle
Im Kinderzweig B können wir das tun
Dies würde es mit dem Ursprung der Eltern synchron halten.
quelle