git - 解决 git 中的 'both added' merge 冲突?

标签 git merge rebase

我在 git 中 rebase ,我得到的一个冲突是“都添加了”——也就是说,完全相同的文件名已经独立地添加到我的分支和我要 rebase 的分支中。 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

我的问题是,我该如何解决这个问题?我必须使用 merge 工具还是有什么方法可以仅从命令行执行此操作?如果我 git rm src/MyFile.cs,git 如何知道我想删除和保留哪个文件版本?

最佳答案

如果您使用 git rm,git 将从索引中删除该路径的所有版本,因此您的 resolve 操作将使您没有任何一个版本。

您可以使用 git checkout --ours src/MyFile.cs 从要 rebase 的分支或 git checkout --theirs src/MyFile.cs 从您要 rebase 的分支中选择版本。

如果您想要混合,您需要使用 merge 工具或手动编辑。

关于git - 解决 git 中的 'both added' merge 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9823692/

相关文章:

git 失败时尽量打补丁

git - 我无法 push git?

eclipse - 如何在 Windows 上通过 SSH 使用 EGit?

r - 将两个列表按组件合并为一个组件

git - 如何使用 Git rebase 重新排序/merge 提交?

git - 了解如何处理 Git 中的文件删除

git - 如何在 rebase 后解决冲突并推送它们

git - 如何使用 git subtree 添加本地 repo?

php - 合并两个关联数组而不重新索引 - PHP

R - 根据条件求和并合并列