我不明白为什么"都已删除"是未合并路径的状态。
如果:
- 旧标准是基础
- 新标准是主干上的最后一个提交
- OldCustom是我们尝试合并回master的分支(来自OldStandard的分支(
为什么与标记为"都已删除"的某些文件发生冲突?
我理解"两者都已添加"的冲突,当一个文件添加到NewStandard中,而另一个版本的文件添加到OldCustom中时。
但是,对于删除,如果文件已在NewStandard中删除,并且在OldCustom中删除,则有什么问题? 这是一个等效的状态,不是吗?
如本回答中所述(建议作为重复项(:
当branchA
有git mv oldfile newstandard
提交,而branchB
有git mv oldfile newcustom
提交时,你可以看到"两者都已删除"。
在这种情况下,当尝试将customBranch
合并到standardBranch
中时,git
将报告三个文件的冲突:
both deleted: oldfile
added by them: newcustom
added by us: newstandard
像任何冲突一样,最终选择权掌握在你手中:
git
只是强调这样一个事实,即在您的最终代码版本中,newcustom
和newstandard
生活在一起的事实可能存在问题,也许这可能与两者都是通过oldfile
的副本创建的事实有关。
您可以手动修复:
- 如果删除
oldfile
是预期的结果:git reset -- oldfile
, - 如果保持
newstandard
是预期结果,请删除其他:git reset newcustom && git rm newcustom
, - 如果
newstandard
和newcustom
的某些部分应该合并:手动编辑它们,或使用 3 向合并工具:meld newstandard newstandard newcustom
- 等。。。