如何从当前工作树中删除未追踪的本地文件?


当前回答

好吧,删除不需要的未追踪文件和文件夹是容易使用 git 在命令行,只是这样做:

git clean -fd

在做之前双检查,因为它会删除文件和文件夹,而不会创建任何历史。

所以,如果你只想删除文件,你只能使用 -f:

git clean -f

如果您想要删除(目录)和文件,您只能删除未追踪的目录和文件如下:

git clean -fd

并添加 -i 旗帜,使 git 请求您的许可,以便在行程中单独删除文件。

如果您不确定,并希望先检查事物,请添加 -n 旗帜。

使用 -q 如果您不希望在成功删除后看到任何报告。

我也创建下面的图像,使它更令人难忘,特别是我已经看到许多人混淆 -f 为清洁文件夹有时或混合它在某种程度上!


其他回答

更好的方法是使用: git clean

git clean -d -x -f

这将删除未追踪的文件,包括目录(d)和由 git(x)忽略的文件。

此外,将 -f 论点替换为 -n 以进行干燥运行或 -i 为互动模式,它会告诉你什么将被删除。

如果没有其他工作,可以使用下列组合来简单地删除“吉特状态”命令列出的所有变化:

git add -A& git commit -m temp && git reset --hard HEAD^

这将首先完成您的所有变化,然后创建一个暂时的承诺,然后放弃它。

删除未追踪的文件的简单方法

要删除所有未追踪的文件,简单的方式是先添加所有文件并重新设置下面的复制文件。

git add --all
git reset --hard HEAD

正常的 git 清洁命令不会用我的 git 版本 2.9.0.windows.1 删除未追踪的文件。

$ git clean -fdx     # doesn't remove untracked files
$ git clean -fdx *   # Append star then it works!

我用这个:

git 状态 复制文件路径 rm <文件路径>

我的项目有很多由一个巨大的 ANT 构建脚本创建的创建文件,使用 git clean 会产生混乱。