我有一个主分支并创建了一个名为
NewBranch
的分支。在这个分支中,我修改了一些文件,并将一些文件移动到名为 _deprecated
的文件夹中。合并时,我遇到了一些错误:
added by them: _deprecated/file1
added by us: _deprecated/file2
deleted by us: _deprecated/file3
deleted by them: _deprecated/file4
both deleted: _deprecated/file5
令人烦恼的是,我从来没有碰过
file2
和file3
,那为什么它们会出现在这里呢?另外,为什么合并的时候会有both deleted
之类的东西?两个分支都删除文件怎么会出现合并冲突呢?
您的场景涉及 Git 中复杂的合并情况,这可能会令人困惑。让我们分解一下您遇到的问题:
“他们添加”和“我们添加”消息:
NewBranch
和 master
分支中,但方式不同或内容不同。file1
和file2
,似乎两个分支都对这些文件进行了更改,但方式不同。这就是 Git 通知您这些冲突的原因。“被我们删除”和“被他们删除”消息:
file3
已在NewBranch
中删除,但在master
分支中进行了修改,反之亦然。同样对于file4
。“都已删除”消息:
关于您对
file2
和file3
的困惑:
master
分支上的其他人移动或修改的,或者可能是通过自动化流程或脚本移动或修改的。git log
或基于 GUI 的 Git 工具来检查历史记录。解决这些冲突:
NewBranch
、master
分支或两者的某种组合的更改。git add
将已解决的文件添加到暂存区域。git commit
完成合并。请记住,在这些情况下,与团队的沟通至关重要。如果您不确定文件被修改或删除的原因,请咨询您的团队成员。这有助于避免将来出现类似问题。