在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