在我的分支上,我在.gitignore中有一些文件
在另一个分支上,这些文件不是。
我想将不同的分支合并到我的分支中,我不关心这些文件是否不再被忽略。
不幸的是,我得到了这个:
以下未跟踪的工作树文件将被合并覆盖
我如何修改我的pull命令来覆盖这些文件,而不需要我自己找到、移动或删除这些文件?
在我的分支上,我在.gitignore中有一些文件
在另一个分支上,这些文件不是。
我想将不同的分支合并到我的分支中,我不关心这些文件是否不再被忽略。
不幸的是,我得到了这个:
以下未跟踪的工作树文件将被合并覆盖
我如何修改我的pull命令来覆盖这些文件,而不需要我自己找到、移动或删除这些文件?
当前回答
您可以试试这个命令
git clean -df
编辑: 请注意,这将删除可能有价值的未跟踪文件。 感谢@zhekaus
其他回答
如果这是一次性操作,那么在执行拉取操作之前,可以从工作目录中删除所有未跟踪的文件。阅读如何从当前Git工作树中删除本地(未跟踪)文件?有关如何删除所有未跟踪的文件的信息。
请确保不要意外删除未跟踪的文件,你仍然需要;)
清洁/重置/硬签出/重基都不适合我。
所以我只是删除了git抱怨的文件*
rm /path/to/files/that/git/complained/about
*我检查了这个文件是否可以通过在一个单独的文件夹中签出一个全新的回购来删除(文件不在那里)
如果你考虑使用-f标志,你可以先运行它作为一个演练。你只需要提前知道你接下来会遇到什么样有趣的情况;-P
-n
--dry-run
Don’t actually remove anything, just show what would be done.
一种方法是存储本地更改并从远程回购中提取。这样,你就不会丢失你的本地文件,因为文件会去隐藏。
git add -A
git stash
git pull
你可以使用git stash list这个命令检查你的本地存储文件
唯一对我有用的命令是: (请注意,这会删除所有本地文件)
git fetch --all
git reset --hard origin/{{your branch name}}