根据 Git Documentation 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,则除非给定 - f,-n 或 - i,否则 git clean 将拒绝运行。
-X
不要使用从. gitignore(每个目录)和 $ GIT_DIR / info / exclude 读取的标准忽略规则,但仍然使用 - e 选项给出的忽略规则。这允许删除所有未跟踪的文件,包括构建产品。这可以使用(可能与 git reset 一起使用)来创建一个 pristine 工作目录来测试一个干净的构建。
-X
仅删除 Git 忽略的文件。这可能有助于从头开始重建所有内容,但保留手动创建的文件。
-n
--dry 运行
实际上不要删除任何东西,只显示将要做的事情。
-d
除了未跟踪的文件之外,删除未跟踪的目录。如果未跟踪的目录由不同的 Git 存储库管理,则默认情况下不会删除它。如果您确实要删除此类目录,请使用 - f 选项两次。
使用git clean -f -d
确保也删除了目录 。
然后,您可以使用git status
检查您的文件是否真的消失了。
我很惊讶之前没有人提到这件事:
git clean -i
这代表交互式 ,您将快速了解将要删除的内容,为您提供包含 / 排除受影响文件的可能性。总体而言,仍然比在真正的清洁之前运行强制性--dry-run
更快。
如果你还想要处理空文件夹,你将不得不投入-d
。最后,它有一个很好的别名:
git iclean
话虽这么说,额外的手持交互式命令可能会让有经验的用户感到厌倦。这些天我只使用已经提到的git clean -fd