Git pull-请先移动或移除它们,然后才能合并

问题描述 投票:51回答:5

我正在尝试从服务器上执行git pull origin master,但始终收到错误:

Please move or remove them before you can merge.

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

我尝试运行git clean -nd以查看将要删除的内容,并且列出了.gitignore中忽略的一堆文件。

我该如何解决这个问题以便进行拉拔?

git git-merge git-pull git-clean
5个回答
24
投票

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

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

.gitignore仅用于扫描新添加的文件,与已经添加的文件没有任何关系。

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

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

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

然后您可以再次尝试$git merge


113
投票

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

git clean -d -f

然后尝试git pull origin master

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

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

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

1)获取

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

git.exe merge --strategy=ours master

[如果出现类似错误

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

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


16
投票

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


2
投票

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


0
投票

[如果出现类似错误


0
投票

如果需要,将文件添加到源代码管理,然后合并开发。有用 :)

© www.soinside.com 2019 - 2024. All rights reserved.