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

s8vozzvw  于 2023-04-19  发布在  Git
关注(0)|答案(6)|浏览(294)

我试图从我的服务器执行git pull origin master,但不断收到错误:
Please move or remove them before you can merge.
没有未跟踪的文件,但由于某种原因,它似乎与 * 忽略的文件 * 有问题。
我试着运行一个git clean -nd来查看什么会被删除,它列出了一大堆在.gitignore中被忽略的文件。
我怎么才能把这个修好然后再拉呢

w8ntj3qf

w8ntj3qf1#

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

jmp7cifd

jmp7cifd2#

显然,这些文件是在远程存储库中添加的,无论原始.gitignore文件的内容是什么。
由于这些文件存在于远程仓库中,git必须将它们拉到本地工作树中,因此会抱怨这些文件已经存在。
.gitignore仅用于扫描新添加的文件,它与已添加的文件无关。
因此,解决方案是删除工作树中的文件并获取最新版本。或者,长期解决方案是从存储库中删 debugging 误添加的文件。
从远程分支中删除文件的一个简单示例是

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

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

h4cxqtbf

h4cxqtbf3#

如果有太多的文件要删除,这实际上是我的情况。你也可以尝试以下解决方案:
1)获取
2)与策略合并。例如,这一个对我有效:

git.exe merge --strategy=ours master
3j86kqsm

3j86kqsm4#

如果你得到的错误像

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

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

mklgxw1f

mklgxw1f5#

我得到这个错误是由于文件名区分大小写。我所做的是改变git的配置,通过运行

git config core.ignorecase true

然后又试着再拉一次,成功了。

git pull

您可以将ignorecase返回为false

git config core.ignorecase false
vjrehmav

vjrehmav6#

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

git clean -d -f

然后尝试git pull origin master
您可以通过输入git clean -help查看其他git clean选项

相关问题