81

我正在尝试git pull origin master从我的服务器执行操作,但不断收到错误消息:

Please move or remove them before you can merge.

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

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

我该如何解决这个问题,以便我可以拉动?

4

5 回答 5

210

我刚刚遇到了同样的问题并使用以下方法解决了它。首先使用以下方法清除跟踪的文件:

git clean -d -f

然后尝试git pull origin master

您可以通过键入查看其他 git clean 选项git clean -help

于 2017-10-30T17:34:19.157 回答
34

删除和删除所有更改git clean -d -f

于 2018-03-23T05:36:39.247 回答
31

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

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

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

因此解决方案是删除工作树中的文件并拉取最新版本。或者长期的解决方案是如果错误地添加了文件,则将其从存储库中删除。

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

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

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

于 2016-03-16T15:27:13.777 回答
3

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

1) 获取

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

git.exe merge --strategy=ours master
于 2018-07-09T08:06:51.700 回答
0

如果您遇到错误,例如

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

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

于 2018-02-12T06:05:58.980 回答