2010-06-24 15 views
5
$ git checkout to-branch 
$ git merge from-branch 
$ git status | grep unmerged 
# file1 unmerged 
# file2 unmerged 
# file3 unmerged 
$ vi file1 
$ git add . 

Eek! Ich wollte nicht "git add". Ich wollte "Datei1 hinzufügen"!Wie rückgängig machen "git add." während einer Zusammenführung?

Jetzt kann ich nicht Verhalten bekommen wie:

$ git show :1:file2 

Ich habe versucht:

$ git reset file2 

und

$ git checkout -m file2 

aber keiner von diesen Renditen Datei2 zu einem "unmerged" Zustand . git status zeigt es nicht als unzusammengeführt an und ich habe keinen Zugriff auf "git show: 1: file2" usw. Ich möchte die Datei wieder in den nicht zusammengefassten Zustand versetzen.

Wie kann ich in den Zustand zurückkehren, in dem ich vor "git add" war. ohne meine Änderungen an file1 zu verlieren?

Antwort

10

(nicht getestet) Haben Sie versucht,

git checkout -m /path/to/file2 
git checkout -m /path/to/file3 

?

Wenn Pfade aus dem Index heraus überprüfen, diese Option können Sie den Konflikt Druck in den angegebenen Pfaden

neu erstellen Wenn dies nicht funktioniert, könnten Sie einige andere Antworten in der Frage SO haben " How do I get my git merge conflicts back after merging incorrectly? "

+0

Dank. Dies gibt Ihnen die Datei mit Zusammenführungskonflikten, aber sie aktualisiert nicht, was immer git verwendet, um Zusammenführungskonflikte zu verfolgen, so dass der git-Status die Datei nicht als unmerged anzeigt und git show: 1: file2 usw. nicht Arbeit. Wir werden uns die andere Frage ansehen. –

+0

+1, Cool - Ich wusste nichts über dieses obskure Feature. Habe gerade einen Test damit probiert und es scheint wie angekündigt zu funktionieren. –

1

Falls jemand ist immer noch mit diesem Problem (wie ich gerade jetzt tat), können Sie (jetzt) ​​dies zu tun:

git update-index --unresolve file2 file3 
Verwandte Themen