Git pull - 请在合并前移动或删除它们

Git pull - Please move or remove them before you can merge

我正在尝试从我的服务器执行 git pull origin master 但一直收到错误消息:

Please move or remove them before you can merge.

没有未跟踪的文件,但由于某些原因,忽略的文件似乎有问题。

我尝试了 运行 a git clean -nd 来查看将被删除的内容,它列出了一大堆在 .gitignore.

中被忽略的文件

我该如何解决这个问题才能进行拉取?

显然文件已添加到远程存储库中,无论源中 .gitignore 文件的内容是什么。

由于文件存在于远程存储库中,git 也必须将它们拉到您的本地工作树中,因此抱怨文件已经存在。

.gitignore仅用于扫描新添加的文件,与已添加的文件无关。

所以解决方案是删除工作树中的文件并拉取最新版本。或者长期的解决方案是从存储库中删除错误添加的文件。

从远程分支删除文件的一个简单示例是

$git checkout <brachWithFiles>
$git rm -r *.extension
$git commit -m "fixin...."
$git push

然后你可以再试一次$git merge

我刚遇到同样的问题,并使用 following.First 清除跟踪文件解决了这个问题:

git clean -d -f

然后尝试 git pull origin master

您可以通过键入 git clean -help

查看其他 git 清理选项

如果您遇到类似

的错误
  • 分支主管 -> FETCH_HEAD 错误:以下未跟踪的工作树文件将被合并覆盖: src/dj/abc.html 请在合并前移动或删除它们。 中止

尝试手动删除上述文件(小心)。 Git 将从 master 分支合并此文件。

移除并删除所有更改git clean -d -f

如果要删除的文件太多,其实我也是这样。您也可以尝试以下解决方案:

1) 获取

2) 合并策略。例如这个对我有用:

git.exe merge --strategy=ours master