以下未跟踪的工作树文件将被合并覆盖,但我不在乎
在我的分支上,我在.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中出现这个错误,可能你忘了提交一些文件。