由于未跟踪的工作树文件,Git 失败

9

我不是Google的专家。更不用说,我甚至不确定这意味着什么或如何解决它?

>> git merge admin_playground
error: Untracked working tree file 'vendor/gems/panda-1.0.0/.gitignore' would be overwritten by merge.
fatal: merging of trees 538b2824765956cc44c42a8ad628e4f4 and d5d4cda68518cd1c81bf70ba8c339fea6 failed

我正在尝试执行git合并,但遇到了失败的语句。

3个回答

9

这是因为 .gitignore 文件不在当前分支中(它未被跟踪),但是它在你尝试合并的分支中。将相应的 .gitignore 文件添加并提交,然后再次尝试合并;或者如果你不需要它并且满意于另一个分支中的文件,则删除 .gitignore 文件。


4
注意:mipadi被接受的答案的作者)也在不同分支文件名之间的冲突情况下提到了这个错误信息。
如果清理未跟踪的文件是一个有效的选项,那么极端解决方案在这个答案中提到(git clean -f -d会删除所有未跟踪的文件和目录)。在您的情况下,这可能过度杀伤(或危险)。
另一个原始解决方案
git checkout -f admin_playground # will overwrite files
git checkout yourBranch # get back where you where when trying the merge
git merge admin_playground

这迫使git继续覆盖文件。我认为你也可以在merge时使用“-f”选项,但切换到另一个分支然后再切回来解决了问题,下一次我能够轻松地合并。注意:实际上,在git merge中没有“-f”选项。

2
尝试运行以下命令:
git add *

git stash

git pull

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