/ / Verwenden Sie immer die Version aus dem gemischten Zweig bei Konflikten - git, merge-conflict-resolution

Verwenden Sie immer die Version aus dem gemischten Zweig bei Konflikten - git, merge-conflict-resolution

Momentan arbeite ich in einem Feature-Zweig, der bald wieder zum Master zusammengeführt wird. Ich habe kürzlich genau das versucht und hatte einige Zusammenführungskonflikte, die ich manuell beheben musste.

Also, ist es möglich, git zu sagen, immer das zu benutzenVersion aus dem fusionierten Zweig, um Merge-Konflikte vorher zu vermeiden? In diesem Fall habe ich die Konflikte manuell behoben, habe aber immer die Version aus dem zusammengeführten Zweig gewählt, was mir einige mühsame Arbeit ersparen würde.

Antworten:

15 für die Antwort № 1

Sie können genau dies in Git mit dem folgenden Befehl tun, vorausgesetzt, dass feature ist der Name Ihres Feature-Zweiges:

git merge -s recursive -X theirs feature

Dies bedeutet, die "rekursive" Merge-Strategie zu verwenden,aber mit der Option "ihre". Dies bedeutet, dass bei einem Konflikt automatisch die Version des Hunks aus dem Feature-Zweig und nicht die aktuelle Verzweigung aufgelöst wird. (Beachten Sie, dass dies völlig anders ist als die Mergestrategie "ihrer", die jetzt aus Git entfernt wurde.)

Diese Funktion wurde in git v1.7.0 eingeführt.


0 für die Antwort № 2

Sie können die "rekursive" Strategie von uns nicht verwenden. Es würde Ihre Änderungen auslassen, die nicht in Konflikt stehen.

Sie können Skripts verwenden, um die Dateinamen der konfliktbehafteten Dateien abzurufen, und einen git checkout --ours - filename gefolgt von einem git add filename erstellen.

Wenn Sie immer wieder die gleichen Konflikte bekommen, schalten Sie Rerere ein und das kann genug sein, damit Sie die Konflikte nicht lösen müssen.

Hoffe das hilft.