Suche…


Syntax

  • git merge another_branch [Optionen]
  • git merge --abort

Parameter

Parameter Einzelheiten
-m Nachricht, die in das Merge-Commit aufgenommen werden soll
-v Ausführliche Ausgabe anzeigen
--abort Versuchen Sie, alle Dateien in ihren Zustand zurückzusetzen
--ff-only Bricht sofort ab, wenn ein Merge-Commit erforderlich ist
--no-ff Erzwingt die Erstellung eines Merge-Commits, auch wenn dies nicht zwingend erforderlich ist
--no-commit Gibt vor, dass die Zusammenführung die Überprüfung und das Optimieren des Ergebnisses nicht zulässt
--stat Zeigt ein diffstat nach dem Abschluss der Zusammenführung an
-n / --no-stat Das diffstat nicht anzeigen
--squash Erlaubt ein einmaliges Commit für den aktuellen Zweig mit den zusammengeführten Änderungen

Verbinden Sie einen Zweig mit einem anderen

git merge incomingBranch

Dadurch wird der Zweig " incomingBranch mit dem Zweig verbunden, in dem Sie sich aktuell befinden. Wenn Sie sich zum Beispiel im master , wird " incomingBranch " mit dem master .

Das Zusammenführen kann in manchen Fällen zu Konflikten führen. In diesem Fall wird die Meldung Automatic merge failed; fix conflicts and then commit the result. Sie müssen die in Konflikt stehenden Dateien manuell bearbeiten oder den Zusammenführungsversuch rückgängig machen, indem Sie Folgendes ausführen:

git merge --abort

Automatisches Zusammenführen

Wenn die Commits in zwei Zweigen nicht miteinander in Konflikt stehen, kann Git sie automatisch zusammenführen:

~/Stack Overflow(branch:master) » git merge another_branch
Auto-merging file_a
Merge made by the 'recursive' strategy.
 file_a | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Abbrechen einer Zusammenführung

Nach dem Starten einer Zusammenführung möchten Sie möglicherweise die Zusammenführung beenden und alles in den Zustand vor der Zusammenführung zurücksetzen. Verwenden Sie --abort :

git merge --abort

Behalten Sie Änderungen nur auf einer Seite der Zusammenführung bei

Während einer Zusammenführung können Sie --ours oder --theirs an der git checkout --theirs , um alle Änderungen für eine Datei von der einen oder der anderen Seite einer Zusammenführung zu übernehmen.

$ git checkout --ours   -- file1.txt # Use our version of file1, delete all their changes
$ git checkout --theirs -- file2.txt # Use their version of file2, delete all our changes

Mit einem Commit zusammenführen

Das Standardverhalten ist, wenn die Zusammenführung als schneller Vorlauf aufgelöst wird und nur der Verzweigungszeiger aktualisiert wird, ohne eine Zusammenführungsfestschreibung zu erstellen. Verwenden Sie --no-ff zum Auflösen.

git merge <branch_name> --no-ff -m "<commit message>"

Finden aller Zweige ohne zusammengeführte Änderungen

Manchmal liegen Zweige herum, deren Änderungen bereits in Master eingearbeitet wurden. Dadurch werden alle Zweige gefunden, die kein master sind und im Vergleich zu master keine eindeutigen Commits haben. Dies ist sehr nützlich, um Zweige zu finden, die nicht gelöscht wurden, nachdem der PR in den Master eingefügt wurde.

 for branch in $(git branch -r) ; do
   [ "${branch}" != "origin/master" ] && [ $(git diff master...${branch} | wc -l) -eq 0 ] && echo -e `git show --pretty=format:"%ci %cr" $branch | head -n 1`\\t$branch
 done | sort -r


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow