Wie löse ich den Git-Status "Nicht zusammengeführte Pfade:"?

83

Ich habe Zweig dogin zusammengeführt animal. Wenn ich mich verpflichte, erhalte ich Folgendes:

Unmerged paths:
(use "git reset HEAD <file>..." to unstage)
(use "git add <file>..." to mark resolution
both deleted:       ../public/images/originals/dog.ai
added by them:      ../public/images/original_files/dog.ai

Ich hatte in jedem Zweig unterschiedliche Verzeichnis- und Dateinamen. Der animalZweig hat die Änderungen, die ich will.

Wenn ich den Kopf zurücksetze, funktioniert es nicht. Und wenn ich eine andere Git-Aktion ausführe (Entfernen, Auschecken usw.), wird eine path not foundFehlermeldung angezeigt.

Welche Befehle muss ich ausführen, um dies zu beheben?

Keruilin
quelle

Antworten:

81

Alles was Sie tun müssen ist:

# if the file in the right place isn't already committed:
git add <path to desired file>

# remove the "both deleted" file from the index:
git rm --cached ../public/images/originals/dog.ai

# commit the merge:
git commit
Cascabel
quelle
25
Weitere Erklärung wäre nützlich
Francisco Ochoa
48

Eine andere Möglichkeit, mit dieser Situation umzugehen, wenn Ihre Dateien bereits eingecheckt sind und Ihre Dateien zusammengeführt wurden (aber nicht festgeschrieben wurden, sodass die Zusammenführungskonflikte in die Datei eingefügt werden), besteht darin, Folgendes auszuführen:

git reset

Dies wechselt zu HEAD und weist git an, alle Zusammenführungskonflikte zu vergessen und das Arbeitsverzeichnis unverändert zu lassen. Anschließend können Sie die betreffenden Dateien bearbeiten (suchen Sie nach den Hinweisen "Aktualisierter Upstream"). Sobald Sie sich mit den Konflikten befasst haben, können Sie ausführen

git add -p

Auf diese Weise können Sie interaktiv auswählen, welche Änderungen Sie dem Index hinzufügen möchten. Sobald der Index gut aussieht ( git diff --cached), können Sie festschreiben und dann

git reset --hard

um alle unerwünschten Änderungen in Ihrem Arbeitsverzeichnis zu zerstören.

naught101
quelle
Was ist "Updated upstream" notices?
Saikat
2
@takias: Die Markierungen in jeder Datei, die wie folgt aussehen : <<<<<<< [branch] \n [content] \n ==== \n [content] \n [branch] >>>>>>>. Ich denke, das Format hat sich seit meinem Schreiben leicht verändert, aber ein Beispiel finden Sie unter wincent.com/wiki/Git_merge_conflict_cheatsheet .
naught101