在git中解决“两个添加”的合并冲突?

我在git rebasing,我得到的一个冲突是“两个添加” – 也就是说,完全相同的文件名已分别添加到我的分支,并在分支我rebIN。 git status告诉我:

 # Unmerged paths: # (use "git reset HEAD <file>..." to unstage) # (use "git add/rm <file>..." as appropriate to mark resolution) # # both added: src/MyFile.cs 

我的问题是,我该如何解决这个问题? 我必须使用一个合并工具,或者有一种方法,我可以从命令行中做到这一点? 如果我git rm src/MyFile.cs ,git如何知道我想删除哪个文件版本以及我想保留哪个版本?

如果你使用git rm git会从索引中删除所有版本的path,这样你的解决动作就不会有任何版本。

你可以使用git checkout --ours src/MyFile.cs来select分支的版本或者git checkout --theirs src/MyFile.cs来select分支的版本。

如果你想混合你需要使用合并工具或手动编辑。

我有时会发现使用--theirs --ours选项来识别文件的来源会让他们感到困惑。 大部分时间,我将在我正在重新devise的分支中 – 他们所提及的!

你也可以使用git checkout <tree-ish> -- src/MyFile.cs

其中<tree-ish>可以用包含你想保留的文件的分支名称或提交标识replace。

git checkout 6a363d8 -- src/MyFile.cs

git checkout my_branch -- src/MyFile.cs

git checkout HEAD -- src/MyFile.cs

当做…

git checkout --ours someFile

看起来好像在做git的时候什么都没有做。

请记住,之后这样做。

 git add someFile git status