开发者

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 开发者_Python百科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?


(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?"


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

git update-index --unresolve file2 file3
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜