以下未跟踪的工作树文件将被合并覆盖,但我不在乎

在我的分支上,我在.gitignore中有一些文件

在不同的分支上,这些文件不是。

我想合并不同的分支到我的,我不在乎如果这些文件不再被忽略或不。

不幸的是我得到这个:

以下未跟踪的工作树文件将被合并覆盖

如何修改我的pull命令来覆盖这些文件,而不必自己查找,移动或删除这些文件?

问题是你没有在本地跟踪文件,但相同的文件被远程跟踪,所以为了“拉”你的系统将被迫覆盖本地文件不受版本控制。

尝试运行

git add * git stash git pull 

这将跟踪所有文件,删除所有您对本地文件的本地更改,然后从服务器获取文件。

你可以尝试命令清除本地未跟踪的文件

 git clean -d -fx "" 

其中-d可以replace为以下内容:

  • -x意味着被忽略的文件也被删除以及git未知的文件。

  • -d表示除了未跟踪的文件外,还要除去未跟踪的目录。

  • -f是强制它运行所必需的。

这里是可以帮助的链接 。

如果这是一次性操作,则可以在执行拉动之前从工作目录中删除所有未跟踪的文件。 阅读如何从当前的Git工作树中删除本地(未跟踪)的文件? 有关如何删除所有未跟踪文件的信息。

一定不要意外删除你还需要的未跟踪文件;)

唯一对我有用的命令是:

 git fetch --all git reset --hard origin/{{your branch name}} 

你可以试试这个命令

 git clean -df 

删除所有未跟踪的文件:

 git clean -d -fx "" 

如果你考虑使用-f标志,你可以先运行它作为干运行。 只要你事先知道什么样的有趣的情况下,你会最终接下来; – P

 -n --dry-run Don't actually remove anything, just show what would be done. 

除了被接受的答案之外,当然可以通过指定文件来删除不再需要的文件:

 git clean -f '/path/to/file/' 

如果你想看看git clean会删除哪些文件,记得先用-n标志运行它。 请注意,这些文件将被删除。 就我而言,我并不关心他们,所以这对我来说是一个更好的解决scheme。

注意:如果你在Xcode中出现这个错误,可能你忘了提交一些文件。