Git冲突 - 文件在HEAD中被删除并在修订版中被修改

14

我对git还比较新,遇到一个问题不知道该怎么解决。我在一个工作副本中不小心更改了一个文件但没有提交这个更改。然后我又更改了另一个副本,并提交了更改 - 当我尝试拉取这些更改时,不出所料地出现了一个错误,说我的“本地更改将被合并覆盖,中止”。因此,我使用git rm删除了有问题的文件,然后使用git add -u命令并提交了删除操作。然后我尝试拉取最新的副本,得到了以下信息。有什么最好的方法来解决这个问题吗?非常感谢任何指点。

CONFLICT (delete/modify): wp-content/plugins/wp-flash-countdown/xml_option_.xml deleted in HEAD and modified in ba878ab1efe3a039961a446c490d5c93a2bc22e1. Version ba878ab1efe3a039961a446c490d5c93a2bc22e1 of wp-content/plugins/wp-flash-countdown/xml_option_.xml left in tree.
Automatic merge failed; fix conflicts and then commit the result.

3个回答

15

如果你现在运行git status命令,其输出将包含以下内容:

# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
如果你使用git rm将它们删除,会输出一个需要合并的警告,但是仍然会成功删除,然后你可以提交这些修改——这将成为"合并提交"。

如果你使用git rm将它们删除,会输出一个需要合并的警告,但是仍然会成功删除,然后你可以提交这些修改——这将成为"合并提交"。


7

在这个时候,您是否已经在您拉取的工作副本中拥有该文件?

如果是,请将其删除并重新提交。


我刚刚尝试了这个操作,重新提交并再次拉取 - 这一次出现了“无法拉取,因为你有未合并的文件,请在工作区中修复它们,然后使用 'git add/rm <file>'”的错误提示 - 它还列出了一些已被删除但仍在工作副本中的文件。 - bsod99
好的,所以只是一个文件引起了问题 - 尝试使用git rm删除,但出现“需要合并”错误。 - bsod99
最终,问题解决了,实际上是你的解决方案加上我不必要的额外步骤! - bsod99

2
有一个类似的问题,是由于使用了一家劣质的WordPress主机所导致的。建议尝试以下方法...
git log --follow -- readme.html

请注意上一次该文件存在的提交ID(比如在您删除它之前)。现在,您想从Git中“checkout”该文件。

git checkout (commit id) readme.html

然后添加、提交、推送等等。这对我起作用了!

1
这对我很有效,谢谢。 - Nick Triantafillou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接