tags: [git, published]
TL;DR
git 默认只会非递归地删除当前目录下不被 ignore 匹配、且不在 untracked 目录中的 untracked 文件
- 是否被 ignore 文件匹配的
使用-x
删除 ignore 文件[1] - 所在目录是否 untracked
如果是,需要使用-d
删除
default 行为
默认会删除当前目录下的 untracked file,并且不会递归地删除子目录下 untracked file
如果指定了某个路径,则会进行递归地删除
注意:
- ignore 文件不会被删除
- untracked directory 中的文件不会被删除
带选项的行为
- -d Directory
没有指定路径时,会进行递归删除
但如果指定了某个路径,这个选项就没有意义了 - -f Force
使用 git clean 命令时需要配置clean.requireForce
变量,如果没有配置,则需要使用-f
选项进行强制删除 - -x
删除 ignore file
Reference
Git - Clean - GeeksforGeeks
git-clean(1) - Linux man page
被 gitignore 文件中的模式匹配的文件 ↩︎