我正在合并更新版本master
进入我的分支。在 master 中,一个文件已被删除,我也删除了。 Git 给了我以下内容:
Deleted merge conflict for 'Lib/SharedBL/WebServices/WebAPI/Admin/Admin.cs':
{local}: deleted
{remote}: deleted
Use (m)odified or (d)eleted file, or (a)bort?
为什么这是一个冲突?两边都被删除了,那么 git 肯定应该删除它吗?
首先,我们需要快速了解一些背景术语。当你跑步时git merge xyz
, Git 识别three承诺:
- 您当前的提交:
HEAD
, “当地的”,--ours
, 等等。我喜欢这样称呼L对于左或本地。
- 另一个提交:由
xyz
:“远程”、“其他”、--theirs
, 等等。我喜欢这样称呼R对于右侧或远程。
- 第三次提交:第一个提交L and R有共同点。这是合并基地 commit.
Git 计算与合并基础的差异L,第二个与合并基不同R。这两个差异可以对合并库中存在的文件进行不同的更改。
If Lib/SharedBL/WebServices/WebAPI/Admin/Admin.cs
是合并基础提交中的一个文件,并且在两个头中都被删除,不会有冲突,并且不会发生这种情况。
然而,如果Lib/SharedBL/WebServices/WebAPI/Admin/Admin.cs
存在于合并基地中并且是renamed(也许也修改过)在一次提交中但是deleted在另一个提交中,将会出现重命名/删除冲突。在这种情况下,git mergetool
不会找到Lib/SharedBL/WebServices/WebAPI/Admin/Admin.cs
在任一L or R.
换句话说,该特定文件将在工作树中删除。但是……应该是这样吗?您应该从基本提交恢复文件吗?这git mergetool
脚本不知道。它向您提出了这个问题。
请注意,如果您从基本提交恢复文件,您仍然会拥有重命名的文件。由您来决定对此采取什么措施。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)