Thomas David Baker
Thomas David Baker

Reputation: 1129

How to undo "git add ." during a merge?

$ git checkout to-branch
$ git merge from-branch
$ git status | grep unmerged
#  file1    unmerged
#  file2    unmerged
#  file3    unmerged
$ vi file1
$ git add .

Eek! I didn't mean to "git add ." I meant to "git add file1"!

Now I can't get behavior like:

$ git show :1:file2

I tried:

$ git reset file2

and

$ git checkout -m file2

but neither of those returns file2 to an "unmerged" state. git status does not show it as unmerged and I don't have access to "git show :1:file2", etc. I want to put the file back into the unmerged state.

How can I go back to the state I was in before "git add ." without losing my changes to file1?

Upvotes: 10

Views: 2661

Answers (2)

Neil
Neil

Reputation: 55392

In case anyone's still having this problem (like I did just now), you can (now) do this:

git update-index --unresolve file2 file3

Upvotes: 4

VonC
VonC

Reputation: 1324347

(Not tested) Did you try

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

?

When checking out paths from the index, this option lets you recreate the conflicted merge in the specified paths

If this doesn't work, you might have some other answers in the SO question "How do I get my git merge conflicts back after merging incorrectly?"

Upvotes: 15

Related Questions