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
-d
Remove untracked directories in addition to untracked files. If an
untracked directory is managed by a different Git repository, it is
not removed by default. Use -f option twice if you really want to
remove such a directory.
-f, --force
If the Git configuration variable clean.requireForce is not set to
false, git clean will refuse to delete files or directories unless
given -f, -n or -i. Git will refuse to delete directories with .git
sub directory or file unless a second -f is given. This affects
also git submodules where the storage area of the removed submodule
under .git/modules/ is not removed until -f is given twice.
-x
Don't use the standard ignore rules read from .gitignore (per
directory) and $GIT_DIR/info/exclude, but do still use the ignore
rules given with -e options. 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.
还有其他标志可用,只需检查 git clean --help .
6
使用 git clean -f -d 确保也删除 directories .
然后,您可以使用 git status 检查您的文件是否真的消失了 .
3
我刚刚发明并尝试过这种情况的生活方式(完美无缺):
git add .
git reset --hard HEAD
Beware! 一定要 commit any needed changes (即使在非未跟踪文件中) before performing this .
30 回答
任务:从git存储库中删除未跟踪的文件:
将文件和文件夹从本地项目文件夹中移动到其他位置一段时间
删除.gitignore中有关提交的这些文件和文件夹的所有行
Git add .
Git commit -m“从未跟踪文件清理存储库”
Git推
已从存储库中删除所有文件和文件夹 .
如果需要,可以在localhost上恢复它们:
将您已临时移动的所有文件和文件夹再次移回本地项目文件夹
将有关这些文件和文件夹的所有行移回.gitignore
Git add .
Git commit -m“检查或文件没有再出现在git仓库中”
Git推
你完成了!
git-clean - Remove untracked files from the working tree
对我来说只有工作:
在所有其他情况下,我收到一些子目录的消息"Skipping Directory" .
我们可以使用下面的git注释轻松地从当前git工作树中删除本地未跟踪文件 .
Example:
Links :
https://git-scm.com/docs/git-reset
How do I use 'git reset --hard HEAD' to revert to a previous commit?
Reset local repository branch to be just like remote repository HEAD
https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html
如果您只想删除“git status”未列出的文件
我更喜欢这个'git clean'因为'git clean'会删除被git忽略的文件,所以你的下一个版本将不得不重建所有内容,你也可能会失去你的IDE设置 .
要知道在实际删除之前将删除的内容:
git clean -d -n
它将输出如下内容:
Would remove sample.txt
要删除上一个命令的输出中列出的所有内容:
git clean -d -f
它将输出如下内容:
Removing sample.txt
如果未跟踪目录是其自己的git存储库(例如子模块),则需要使用
-f
两次:git clean -d -f -f
OK, 在命令行中使用
git
很容易删除 unwanted untracked files and folders ,只需这样做:Double check 之前这样做会删除文件和文件夹而不做任何历史记录......
同样在这种情况下,
-f
代表强制,-d
代表目录......因此,如果您只想删除文件,则只能使用
-f
:如果要删除(目录)和文件,则只能删除未跟踪的目录和文件,如下所示:
此外,您可以使用
-x
标志来包含git忽略的文件 . 如果要删除所有内容,这将非常有用 .并添加
-i
标志,让git要求您在移动中逐个删除文件的权限 .如果您不确定并想先检查一下,请添加
-n
标志 .如果您想在删除成功后不想看到任何报告,请使用
-q
.我还创建了下面的图像,使其更具记忆性,特别是我看到很多人有时会混淆
-f
清理文件夹或以某种方式混合它!我很惊讶之前没有人提到这件事:
这代表交互式,您将快速了解将要删除的内容,为您提供包含/排除受影响文件的可能性 . 总体而言,仍然比在真正的清洁之前运行强制
--dry-run
更快 .如果你还想要处理空文件夹,你将不得不投入
-d
. 最后,它有一个很好的别名:话虽这么说,额外的手持交互式命令可能会让有经验的用户感到厌倦 . 这些天我只是使用已经提到的
git clean -fd
git-clean正是您要找的 . 它用于从工作树中删除未跟踪的文件 .
User interactive approach:
-i用于交互式
-f代表武力
-d用于目录
-x表示忽略的文件(如果需要,添加)
Note: 添加 -n 或 --dry-run 以查看它将执行的操作 .
git clean -f -d -x $(git rev-parse --show-cdup)
将clean应用于根目录,无论您在存储库目录树中何处调用它 . 我一直使用它,因为它不会强迫你离开你现在工作的文件夹,并允许从你所在的地方清理和提交 .确保标志
-f
,-d
,-x
符合您的需求:还有其他标志可用,只需检查
git clean --help
.使用
git clean -f -d
确保也删除 directories .然后,您可以使用
git status
检查您的文件是否真的消失了 .我刚刚发明并尝试过这种情况的生活方式(完美无缺):
Beware! 一定要 commit any needed changes (即使在非未跟踪文件中) before performing this .
带有 zsh 的 oh-my-zsh 通过git插件提供了那些很棒的别名 . 它们也可以用于bash .
gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'
gclean
删除未跟踪的目录以及未跟踪的文件 .gpristine
硬重置本地更改,删除未跟踪的目录,未跟踪的文件,不要使用从.gitignore(每个目录)和$ GIT_DIR / info / exclude读取的标准忽略规则,但仍然使用-e给出的忽略规则选项 . 这允许删除所有未跟踪的文件,包括构建产品 . 这可以使用(可能与git reset一起使用)来创建一个pristine工作目录来测试一个干净的构建 .更好的方法是使用:git clean
这将删除未跟踪的文件,包括目录
(-d)
和git (-x)
忽略的文件 .此外,将
-f
参数替换为-n
以执行dry-run
或-i
用于交互模式,它将告诉您将删除的内容 .要删除未跟踪的文件,首先应使用命令查看将受清理影响的文件
这将显示将要删除的文件列表 . 现在要实际删除这些文件使用此命令:
将从当前git中删除未跟踪的文件
当你想删除目录和文件时,这将只删除未跟踪的目录和文件
Remove all extra folders and files in this repo + submodules
这使您处于与新克隆相同的状态 .
Remove all extra folders and files in this repo but not its submodules
Remove only extra folders but not files (ex. build folder)
Remove extra folders + ignored files (but not any newly added files)
如果文件未被忽略且尚未签入,那么它将保留 . 注意大写字母X.
New interactive mode
Removing Untracked Files from git docs 的uggested命令是 git clean
git clean - 从工作树中删除未跟踪的文件
Suggested Method: 使用
git clean -i
进行交互模式,以便我们可以控制它 . 让我们看看剩余的可用选项Available Options:
Explanation:
1. -d
除了未跟踪的文件之外,删除未跟踪的目录 . 如果未跟踪的目录由不同的Git存储库管理,则默认情况下不会删除它 . 如果您确实要删除此类目录,请使用-f选项两次 .
2. -f, --force
如果Git配置变量clean.requireForce未设置为false,则除非给定-f,-n或-i,否则git clean将拒绝运行 .
3. -i, --interactive
显示将要执行的操作并以交互方式清理文件 . 有关详细信息,请参见“交互模式”
4. -n, --dry-run
实际上不要删除任何东西,只显示将要做的事情 .
5. -q, --quiet
保持安静,仅报告错误,但不报告成功删除的文件 .
6. -e , --exclude=
除了在.gitignore(每个目录)和$ GIT_DIR / info / exclude中找到的那些之外,还要考虑这些模式在有效的忽略规则集中 .
7. -x
不要使用从.gitignore(每个目录)和$ GIT_DIR / info / exclude读取的标准忽略规则,但仍然使用-e选项给出的忽略规则 . 这允许删除所有未跟踪的文件,包括构建产品 . 这可以使用(可能与git reset一起使用)来创建一个pristine工作目录来测试一个干净的构建 .
8. -X
仅删除Git忽略的文件 . 这可能有助于从头开始重建所有内容,但保留手动创建的文件 .
正常
git clean
命令不会使用git version 2.9.0.windows.1
删除未跟踪的文件 .git clean -fd
删除目录git clean -fX
删除被忽略的文件git clean -fx
删除被忽略和未被忽略的文件可以将以上所有选项组合使用
git clean -fdXx
检查git手册以获得更多帮助
git clean -f to remove untracked files from working directory.
我在博客中介绍了一些基础知识,git-intro-basic-commands
我喜欢
git stash push -u
因为你可以用git stash pop
撤消它们 .编辑:我也发现了一种在藏匿处显示未跟踪文件的方法(例如
git show stash@{0}^3
)https://stackoverflow.com/a/12681856/338986EDIT2:
git stash save
不推荐使用push
. 谢谢@ script-wolf .运行
git clean
命令时要小心 .Always use
-n
在运行实际命令之前,它将显示将删除哪些文件 .默认情况下,
git clean
将仅删除未被忽略的未跟踪文件 . 任何与.gitignore中的模式匹配的文件或其他忽略文件都不会被删除 . 如果您也想删除这些文件,可以在clean命令中添加-x
.使用clean命令还可以使用交互模式
-i
或者
如果您不是100%确定删除未提交的作品是安全的,则可以使用存储
它还将清除您的目录,但您可以使用 stash 与 apply 或 pop 在任何时间点灵活地检索文件 . 然后在以后指出你可以使用以下方法清除你的藏匿
如果需要从特定子目录中删除未跟踪的文件,
并结合使用方法删除未跟踪的目录/文件和忽略的文件 .
在此之后,您将仅在
git status
中修改过文件 .根据Git文档git clean
第1步是显示使用
-n
选项删除的内容:清洁步骤 - beware: this will delete files :
要删除目录,请运行
git clean -f -d
或git clean -fd
要删除被忽略的文件,请运行
git clean -f -X
或git clean -fX
要删除已忽略和未忽略的文件,请运行
git clean -f -x
或git clean -fx
Note 后两个命令的
X
的大小写差异 .如果
clean.requireForce
在配置中设置为"true"(默认值),则需要指定-f
,否则实际上不会发生任何事情 .有关更多信息,请再次参阅git-clean docs .
选项
-f
--force
如果Git配置变量clean.requireForce未设置为false,则除非给定-f,-n或-i,否则git clean将拒绝运行 .
-x
不要使用从.gitignore(每个目录)和$ GIT_DIR / info / exclude读取的标准忽略规则,但仍然使用-e选项给出的忽略规则 . 这允许删除所有未跟踪的文件,包括构建产品 . 这可以使用(可能与git reset一起使用)来创建一个pristine工作目录来测试一个干净的构建 .
-X
仅删除Git忽略的文件 . 这可能有助于从头开始重建所有内容,但保留手动创建的文件 .
-n
--dry-run
实际上不要删除任何东西,只显示将要做的事情 .
-d
除了未跟踪的文件之外,删除未跟踪的目录 . 如果未跟踪的目录由不同的Git存储库管理,则默认情况下不会删除它 . 如果您确实要删除此类目录,请使用-f选项两次 .
这就是我经常使用的:
对于一个非常大的项目,您可能希望运行它几次 .