如何从当前的Git工作树中删除本地(未跟踪)的文件?
如何从当前工作树中删除未跟踪的本地文件?
根据Git文档git clean
从工作树中删除未跟踪的文件
步骤1是使用-n
选项显示将要删除的内容:
git clean -n
清洁步骤 - 小心:这会删除文件 :
git clean -f
git clean -f -d
或git clean -fd
git clean -f -X
或git clean -fX
git clean -f -x
或git clean -fx
注意后两个命令在X
上的大小写差异。
如果您的配置中的clean.requireForce
设置为“true”(默认值),则需要指定-f
否则不会发生任何事情。
有关更多信息,请再次参阅git-clean
文档。
选项
-F
- 力
如果Git配置变量clean.requireForce未设置为false,则git clean将拒绝运行,除非给定-f,-n或-i。
-X
不要使用从.gitignore(每个目录)和$ GIT_DIR / info / exclude读取的标准忽略规则,但仍使用-e选项给出的忽略规则。 这允许删除所有未跟踪的文件,包括构建产品。 这可以使用(可能与git reset一起)来创建一个原始工作目录来测试一个干净的构建。
-X
只删除Git忽略的文件。 这对从头开始重建所有内容可能很有用,但保留手动创建的文件。
-n
--dry运行
不要实际删除任何东西,只是显示会做什么。
-d
除了未跟踪的文件之外,还要除去未跟踪的目录。 如果未跟踪的目录由不同的Git存储库管理,则默认情况下不会删除它。 如果您真的想删除这样的目录,请使用-f选项两次。
使用git clean -f -d
来确保目录也被删除。
然后你可以检查你的文件是否真的没有git status
。
我很惊讶没有人提到过这个:
git clean -i
这表示交互式,您将快速了解将要删除的内容,为您提供包含/排除受影响文件的可能性。 总的来说,比在真正的清洁之前运行强制性的--dry-run
还要快。
如果你还想照顾空文件夹,你将不得不在-d
折腾。 最后,它提供了一个很好的别名:
git iclean
话虽如此,交互式命令的额外手持可能会令有经验的用户疲惫不堪。 这些天我只使用已经提到的git clean -fd
上一篇: How to remove local (untracked) files from the current Git working tree?