Um Probleme dieser Art zu vermeiden, kann man den git merge --abort
-Ansatz erweitern und einen eigenen Testzweig vor dem Zusammenführen erstellen.
Fall: Du hast einen Thema-Zweig, der nicht zusammengeführt wurde, weil du abgelenkt warst/es gab Unterbrechungen/du weißt aber es ist (oder war) bereit.
Jetzt ist es möglich, dies mit dem Master zusammenzuführen?
Arbeite in einem Test-Zweig, um eine Lösung abzuschätzen/zu finden, dann verwerfe den Testzweig und wende die Lösung im Thema-Zweig an.
# Thema-Zweig auschecken
git checkout topic-branch-1
# Einen _Test_ Zweig darauf erstellen
git checkout -b test
# Versuch, den Master-Zweig zu mergen
git merge master
# Wenn es fehlschlägt, kannst du den Merge abbrechen
git merge --abort
git checkout -
git branch -D test # wir kümmern uns wirklich nicht um diesen Zweig...
Arbeite an der Behebung des Konflikts.
# Thema-Zweig auschecken
git checkout topic-branch-1
# Einen _Test_ Zweig darauf erstellen
git checkout -b test
# Versuch, den Master-Zweig zu mergen
git merge master
# Konflikte lösen, durch Tests führen, usw.
# dann
git commit
# Jetzt könntest du sogar einen separaten Testzweig auf dem Master-Zweig erstellen
# und schauen, ob du zusammenführen kannst
git checkout master
git checkout -b master-test
git merge test
Schließlich den Thema-Zweig wieder auschecken, die Korrektur vom Testzweig anwenden und mit dem PR fortfahren. Zuletzt den Test- und Master-Test-Zweig löschen.
Beteiligt? Ja, aber es wird nicht in meinen Thema- oder Master-Zweig eingreifen, bis ich wirklich bereit bin.
48 Stimmen
Ich weiß, dass dies eine superalte Frage ist, aber möchtest du den gesamten Zusammenführungsvorgang abbrechen und den Branch, den du zusammenführen wolltest, nicht zusammenführen lassen? Oder möchtest du einfach nur diese eine Datei ignorieren als Teil eines größeren Zusammenführungsvorgangs, bei dem alle anderen Dateien normal zusammengeführt werden? Für mich impliziert dein Titel Ersteres, der Text deiner Frage möchte Letzteres. Die Antworten geben keine klare Antwort.
0 Stimmen
Ich habe einen ähnlichen Fall beim Commit, der besagt, dass der automatische Merge fehlgeschlagen ist; Konflikte beheben und dann das Ergebnis committen:
[abgelehnt] gh-pages -> gh-pages (nicht-fast-forward)
4 Stimmen
Gwyn, es könnte nützlich sein, hier eine akzeptierte Antwort auszuwählen. Die am besten bewertete Antwort ist etwas weniger sicher als einige der aktuellen Lösungen, daher denke ich, dass es hilfreich wäre, andere hervorzuheben :)