告诉git可以删除未跟踪的文件

zko*_*nik 59 git version-control

可能重复:
如何从git工作副本中删除未跟踪的文件?

是否有可能告诉git删除未跟踪文件?主要是类似于重置的东西?

例:

git checkout -- index.php <-- revert my file
git checkout -- master <-- this would revert the entire repo back to the last commit on master, removing (deleting) any and all untracked files as well as reverting committed ones.
Run Code Online (Sandbox Code Playgroud)

我知道这对shell来说是微不足道的,但我想知道这是否可以在Git中完成?

Ada*_*ruk 61

您需要git clean添加-df以启用从您所在位置删除目录中的文件.添加x以包括忽略的文件.

因此,要完全清理工作目录,只留下源代码控制中的内容,请发出以下命令:

git clean -xdf
Run Code Online (Sandbox Code Playgroud)

  • 这是问题的最终答案.接受的答案清除未跟踪目录的内部,但保留目录本身. (2认同)

Gre*_*ill 59

你可能正在寻找git clean.这将删除所有未跟踪的文件.默认情况下,这会忽略(不删除)模式.gitignore,但git clean -x也会清除这些文件.

git clean手册页:

   -x
       Don't use the ignore rules. This allows removing all untracked
       files, including build products. This can be used (possibly in
       conjunction with git reset) to create a pristine working directory
       to test a clean build.
Run Code Online (Sandbox Code Playgroud)

  • @Hlung:看起来你的Git安装的默认值是要求`-f`.所以你会使用`git clean -f -x`. (3认同)
  • 我必须使用`-f`代替.`-x`似乎对我不起作用,得到了这个错误:`fatal:clean.requireForce默认为true,-in,-n和-f都没有给出; 拒绝清理 (2认同)