我试图从我的服务器执行git pull origin master,但不断收到错误:Please move or remove them before you can merge.没有未跟踪的文件,但由于某种原因,它似乎与 * 忽略的文件 * 有问题。我试着运行一个git clean -nd来查看什么会被删除,它列出了一大堆在.gitignore中被忽略的文件。我怎么才能把这个修好然后再拉呢
git pull origin master
Please move or remove them before you can merge.
git clean -nd
.gitignore
w8ntj3qf1#
移除和删除所有更改git clean -d -f
git clean -d -f
jmp7cifd2#
显然,这些文件是在远程存储库中添加的,无论原始.gitignore文件的内容是什么。由于这些文件存在于远程仓库中,git必须将它们拉到本地工作树中,因此会抱怨这些文件已经存在。.gitignore仅用于扫描新添加的文件,它与已添加的文件无关。因此,解决方案是删除工作树中的文件并获取最新版本。或者,长期解决方案是从存储库中删 debugging 误添加的文件。从远程分支中删除文件的一个简单示例是
$git checkout <brachWithFiles> $git rm -r *.extension $git commit -m "fixin...." $git push
然后您可以再次尝试$git merge
$git merge
h4cxqtbf3#
如果有太多的文件要删除,这实际上是我的情况。你也可以尝试以下解决方案:1)获取2)与策略合并。例如,这一个对我有效:
git.exe merge --strategy=ours master
3j86kqsm4#
如果你得到的错误像
尝试手动删除上面的文件(小心)。Git将从master分支合并此文件。
mklgxw1f5#
我得到这个错误是由于文件名区分大小写。我所做的是改变git的配置,通过运行
git config core.ignorecase true
然后又试着再拉一次,成功了。
git pull
您可以将ignorecase返回为false
git config core.ignorecase false
vjrehmav6#
我刚刚遇到了同样的问题,并使用以下方法解决了它。首先使用以下方法清除跟踪的文件:
然后尝试git pull origin master您可以通过输入git clean -help查看其他git clean选项
git clean -help
6条答案
按热度按时间w8ntj3qf1#
移除和删除所有更改
git clean -d -f
jmp7cifd2#
显然,这些文件是在远程存储库中添加的,无论原始
.gitignore
文件的内容是什么。由于这些文件存在于远程仓库中,git必须将它们拉到本地工作树中,因此会抱怨这些文件已经存在。
.gitignore
仅用于扫描新添加的文件,它与已添加的文件无关。因此,解决方案是删除工作树中的文件并获取最新版本。或者,长期解决方案是从存储库中删 debugging 误添加的文件。
从远程分支中删除文件的一个简单示例是
然后您可以再次尝试
$git merge
h4cxqtbf3#
如果有太多的文件要删除,这实际上是我的情况。你也可以尝试以下解决方案:
1)获取
2)与策略合并。例如,这一个对我有效:
3j86kqsm4#
如果你得到的错误像
尝试手动删除上面的文件(小心)。Git将从master分支合并此文件。
mklgxw1f5#
我得到这个错误是由于文件名区分大小写。我所做的是改变git的配置,通过运行
然后又试着再拉一次,成功了。
您可以将ignorecase返回为false
vjrehmav6#
我刚刚遇到了同样的问题,并使用以下方法解决了它。首先使用以下方法清除跟踪的文件:
然后尝试
git pull origin master
您可以通过输入
git clean -help
查看其他git clean选项