Wiederholen Sie das Zusammenführen nur einer einzelnen Datei


112

Ich bin mitten in einer großen Zusammenführung und habe git mergetoolalle Konflikte gelöst, aber ich habe mich noch nicht verpflichtet, da ich sicherstellen wollte, dass die Zusammenführung zuerst in Ordnung war.

Es stellt sich heraus, dass ich beim Lösen der Konflikte in einer Datei einen Fehler gemacht habe, und ich möchte die Konfliktlösung mit git mergetoolin dieser Datei wiederholen . Da dies eine große Zusammenführung ist, möchte ich vermeiden, die Zusammenführung aller anderen Dateien zu wiederholen, da ich verstehe, dass ich damit zu tun haben würde git merge --abort.

Ich weiß, dass ich die Datei nur manuell bearbeiten könnte, aber das wäre ziemlich mühsam und es wäre viel einfacher, den git mergetoolVorgang einfach zu wiederholen . Ist das möglich?


Antworten:


181

Es scheint, ich habe nur am falschen Ort gesucht. Die Lösung erwies sich als recht einfach.

git checkout -m <file>

Dadurch wird die Datei in den Konfliktzustand zurückversetzt. Ich kann dann laufen git mergetool, um die Zusammenführung zu wiederholen.


2
Diese Art hat bei mir funktioniert. Der Index endete in einem zusammengeführten Zustand, aber mergetool glaubte nicht, dass es ausstehende Zusammenschlüsse gab. Ich habe die Zusammenführung nur mit vi durchgeführt, aber es war trotzdem komisch.
Chris Cleeland

1
Danke! Genau das wird benötigt. Übrigens ist das manuelle Zusammenführen mit vi immer ein Vergnügen und voll befriedigend. Das Verschieben nach links oder nach rechts gab mir nie das Vertrauen, dass die Zusammenführung wie erwartet verläuft
wie

1
Die Antwort dieser doppelten Frage enthält einige hilfreiche zusätzliche Details (mit derselben Antwort) .
Joshua Goldberg

-4

Sie können die Dateien jederzeit manuell bearbeiten.

Wenn Sie das verwenden git merge --no-commit, haben Sie einfach eine vorbereitete Festschreibung (nach der automatischen und halbautomatischen) Zusammenführung.

Sie können die Dateien weiterhin sicher bearbeiten und nur dann festschreiben, wenn Sie vollständig zufrieden sind.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.