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


当前回答

用户互动方法:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y

-i for interactive -f for force -d for directory -x for ignored files(添加必要时) 注意: 添加 -n 或 -dry-run 只需检查它会做什么。

其他回答

在此 repo + 子模块中删除所有额外的文件和文件

这将使你处于新鲜的克隆状态。

git clean -ffdx

在此 repo 中删除所有额外的文件夹和文件,但不是其子模块

git clean -fdx

删除额外的文件夹,但不删除文件(例如构建或登录文件夹)

git clean -fd

删除额外的文件夹 + 被忽略的文件(但不新添加的文件)

如果文件没有被忽视,并且还没有被检查,那么它仍然存在。

git clean -fdX

新互动模式

git clean

使用 git reset HEAD <file> 删除文件

在运行清洁命令之前,总是使用 -n,因为它会向您展示哪些文件会被删除。

通常情况下,当没有确定的情况下,Git Clean 不会返回未跟踪的目录,以避免删除太多。 指定 -d 以便返回此类目录。 如果任何路径是确定的, -d 是无关紧要的; 所有未跟踪的文件符合确定的路径(除非在 --force 中提到的未跟踪的Git目录)将被删除。

git clean -n -d 
git clean -n -d -f

git clean -d -f

默认情况下, git clean 只会删除未追踪的文件,这些文件不会被忽视. 任何符合您的.gitignore 或其他 ignore 文件中的模式的文件将不会被删除. 如果您想要删除这些文件,您可以将 -x 添加到清洁命令。

git clean -f -d -x

git clean -x -i

If you are not 100% sure that deleting your uncommitted work is safe, you could use stashing instead
git stash --all

git stash push --keep-index

呼叫 git stash 没有任何论点,相当于 git stash push。

git stash push -m "name your stash" // before git stash save (deprecated)

git stash drop // or clean

要查看关于如何使用 stash 的完整指示,请参见此 如何在 git 中以名称命名和获取 stash?

我用这个:

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

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

对于我来说,只有下一个工作:

git clean -ffdx

在所有其他情况下,我收到一些子办公室的“Skipping Directory”消息。