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


当前回答

要删除完整更改git 清洁 -f -d

$ git clean -f -d
Removing client/app/helpers/base64.js
Removing files/
Removing package.json.bak

where 
-f is force 
-d is a directory 

其他回答

如果未跟踪的目录是自有的 git 仓库( 如子模块) , 您需要使用-f两次:

git clean -d -f -f

执行`基本干净'指挥时要小心。

总是使用 -n第一次

总是使用-n在运行干净命令前, 它会显示要删除的文件 。

-d通常情况下, 当未指定时, git clean 将不会在未跟踪的目录中循环, 以避免删除太多内容。 指定 - 指定它也会在目录中循环。 如果指定了任何路径, - d 是无关的; 所有匹配指定路径的未跟踪文件都将被删除( 强制下提及的嵌套 git 目录除外 ) 。

-f | --force如果 Git 配置变量清洁. require Force 不设假, Git clean 将拒绝删除文件或目录, 除非给 -f 或 -i。 Git 将拒绝修改未跟踪的嵌套 Git 仓库( 带有. git 子目录的目录) , 除非给第二个 - f 。

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

现在没有跑-n如果输出是您要删除的 。

git clean -d -f

默认情况下,git clean只会删除未被忽略的未追踪文件 。 任何符合您. gitignore 或其他忽略文件模式的文件都不会被删除。 如果您也想要删除这些文件, 您可以添加一个-x向干净的命令。

git clean -f -d -x

还有一个互动模式可以使用-i使用干净命令

git clean -x -i

如果您不能100%确定删除您未委托的工作是否安全, 您可以用藏匿代替
git stash --all

在使用前stash --all注:如果--all选项,然后忽略被忽略的文件除防污装置外,还加以藏匿和清洗。未跟踪文件.

git stash push --keep-index

如果使用 -- kep- index 选项, 索引中已经添加的所有更改将保持不变。 您的分阶段更改将留在工作空间中, 但与此同时, 这些更改也将保存在您的隐藏中 。

电 电 电git stash没有任何论据等于或等于或等于或等于或等于git stash push.

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

基于用过的旗旗的嵌入基于用过的旗子的嵌入可以将您的目录从未显示/ 高级文件清除出来, 将其写入隐藏存储文件 。 我给您在任何时间点使用文件的灵活性 。 @ info: tooltip隐藏适用弹出。然后,如果您可以删除您的隐藏文件,您可以运行:

git stash drop // or clean

看到关于如何与藏藏合作的完整指导 可以看到这一点如何在 Git 中点名并检索隐藏的 名称 ?

enter image description here

我感到惊讶的是,以前没有人提到这一点:

git clean -i

这代表着交互式互动您将快速了解要删除的内容, 以便您能够包含/ 排除受影响的文件。 总的来说, 仍然比执行强制任务要快--dry-run在真正的清洁之前。

你将不得不扔在-d如果您也想要处理空文件夹。最后,它会制作一个漂亮的别名:

git iclean

话虽如此,对有经验的用户来说,持有互动命令的手掌外握,可能会使有经验的用户感到疲劳。git clean -fd

git clean -f

将会从当前 git 中删除未跟踪的文件

git clean -fd

当您想要删除目录和文件时, 这将只删除未跟踪的目录和文件

用户互动办法:

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 用于交互式
-f 用于武力
-d 用于目录
- 被忽略文件的x( 需要时添加)

注: 添加添加添加- n,n-- 干燥运行检查它能做什么