Ich habe gerade erst angefangen, GIT zu verwenden und finde es wunderbar, aber ich bin ein wenig verwirrt darüber, was der merge
Befehl tut.
Nehmen wir an, wir haben ein Arbeitsprojekt in der Branche "A".
Ich gehe nach Hause und nehme Änderungen an diesem Zweig vor und speichere ihn als "B". Ein anderer Programmierer nimmt Änderungen an "A" vor und speichert sie als "C".
Gibt es eine Möglichkeit, die beiden Zweige "B" und "C" zusammenzuführen und dann die Änderungen als neuen Zweig zu übernehmen, z. B. "D"?
Oder fehlt der Punkt der Zusammenführung?
Antworten:
merge
wird verwendet, um zwei (oder mehr) Zweige zusammenzubringen.ein kleines Beispiel:
Jetzt gibt es drei separate Zweige (nämlich AB und C) mit unterschiedlichen Köpfen
Um die Änderungen von B und C wieder auf A zu übertragen, checken Sie A aus (in diesem Beispiel bereits ausgeführt) und verwenden Sie dann den Befehl zum Zusammenführen:
Ihre Geschichte wird dann ungefähr so aussehen:
Wenn Sie über Repository- / Computergrenzen hinweg zusammenführen möchten, sehen Sie sich den
git pull
Befehl an, z. B. vom PC mit Zweig A (in diesem Beispiel werden zwei neue Commits erstellt):quelle
git add conflicting_files
und danngit commit
Wenn Sie Änderungen in SubBranch mit MainBranch zusammenführen möchten
git checkout MainBranch
git merge SubBranch
quelle
Fall: Wenn Sie das standardmäßig erstellte Zusammenführungs-Commit ignorieren müssen , führen Sie die folgenden Schritte aus.
Angenommen, ein neuer Feature-Zweig wird vom Master ausgecheckt, der bereits 2 Commits hat.
Checkout a new feature_branch
Der Feature-Zweig fügt dann zwei Commits hinzu ->
Wenn Sie nun Änderungen an feature_branch mit master zusammenführen möchten, setzen Sie sich
git merge feature_branch
auf den Master.Dadurch werden alle Commits zum Master-Zweig hinzugefügt (4 im Master + 2 in feature_branch = insgesamt 6) + ein zusätzliches Merge-Commit wie
'Merge branch 'feature_branch'
', wenn der Master divergiert .Wenn Sie diese Commits (die in FB vorgenommenen Commits) wirklich ignorieren und die gesamten in feature_branch vorgenommenen Änderungen als einzelne Commits wie
'Integrated feature branch changes into master'
Run hinzufügen müssengit merge feature_merge --no-commit
.Mit --no-commit führt es die Zusammenführung durch und stoppt kurz vor dem Erstellen eines Zusammenführungs-Commits. Wir haben alle hinzugefügten Änderungen im Feature-Zweig jetzt im Master und haben die Möglichkeit, ein neues Commit als unser eigenes zu erstellen.
Lesen Sie hier mehr: https://git-scm.com/docs/git-merge
quelle