小智 8458
根据Git Documentation git clean
从工作树中删除未跟踪的文件
第1步是使用以下-n
选项显示将删除的内容:
# Print out the list of files which will be removed (dry run)
git clean -n
Run Code Online (Sandbox Code Playgroud)
清洁步骤 - 注意:这将删除文件:
# Delete the files from the repository
git clean -f
Run Code Online (Sandbox Code Playgroud)
git clean -f -d
或git clean -fd
git clean -f -X
或git clean -fX
git clean -f -x
或git clean -fx
注意X
后两个命令的大小写差异.
如果clean.requireForce
在配置中设置为"true"(默认值),则需要指定-f
否则实际上不会发生任何事情.
再次查看git-clean
文档以获取更多信息.
-F
- 力
如果Git配置变量clean.requireForce未设置为false,则除非给定-f,-n或-i,否则git clean将拒绝运行.
-X
不要使用从.gitignore(每个目录)和$ GIT_DIR/info/exclude读取的标准忽略规则,但仍然使用-e选项给出的忽略规则.这允许删除所有未跟踪的文件,包括构建产品.这可以(可能与git reset一起使用)创建一个pristine工作目录来测试一个干净的构建.
-X
仅删除Git忽略的文件.这可能有助于从头开始重建所有内容,但保留手动创建的文件.
-n
--dry运行
不要删除任何东西,只显示将要做的事情.
-d
除了未跟踪的文件之外,删除未跟踪的目录.如果未跟踪的目录由不同的Git存储库管理,则默认情况下不会删除它.如果您确实要删除此类目录,请使用-f选项两次.
rob*_*ger 934
用于git clean -f -d
确保还删除了目录.
然后,您可以检查您的文件是否真的消失了git status
.
Sys*_*ank 455
我很惊讶之前没有人提到过:
git clean -i
Run Code Online (Sandbox Code Playgroud)
这代表交互式,您将快速了解将要删除的内容,为您提供包含/排除受影响文件的可能性.总的来说,仍然比--dry-run
真正的清洁前强制运行更快.
-d
如果你还想要处理空文件夹,你将不得不抛弃.最后,它有一个很好的别名:
git iclean
Run Code Online (Sandbox Code Playgroud)
话虽这么说,额外的手持交互式命令可能会让有经验的用户感到厌倦.这些天我只是使用已经提到的git clean -fd
Mic*_*jbe 232
如果未跟踪目录是它自己的git存储库(例如子模块),则需要使用-f
两次:
git clean -d -f -f
Tha*_*nga 219
要删除所有未跟踪的文件,最简单的方法是先添加所有文件并重置repo,如下所示
git add --all
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
hir*_*shi 131
我喜欢git stash push -u
因为你可以用它们全部撤消它们git stash pop
.
编辑:我也发现了一种方法来显示未被跟踪的文件(例如git show stash@{0}^3
)/sf/answers/887729951/
EDIT2:git stash save
不赞成使用push
.谢谢@ script-wolf.
Osc*_*das 113
这就是我经常使用的:
git clean -fdx
Run Code Online (Sandbox Code Playgroud)
对于一个非常大的项目,您可能希望运行它几次.
Vij*_*y C 80
如果需要从特定子目录中删除未跟踪的文件,
git clean -f {dir_path}
Run Code Online (Sandbox Code Playgroud)
并结合使用方法删除未跟踪的目录/文件和忽略的文件.
git clean -fxd {dir_path}
Run Code Online (Sandbox Code Playgroud)
在此之后,您将只修改文件git status
.
Poo*_*oja 52
git clean -fd
删除目录
git clean -fX
删除被忽略的文件
git clean -fx
删除被忽略和未被忽略的文件
可以将以上所有选项组合使用
git clean -fdXx
检查git手册以获得更多帮助
Shi*_*hah 47
删除此repo +子模块中的所有额外文件夹和文件
这使您处于与新克隆相同的状态.
git clean -ffdx
Run Code Online (Sandbox Code Playgroud)
删除此仓库中的所有额外文件夹和文件,但不删除其子模块
git clean -fdx
Run Code Online (Sandbox Code Playgroud)
仅删除额外的文件夹但不删除文件(例如构建文件夹)
git clean -fd
Run Code Online (Sandbox Code Playgroud)
删除额外的文件夹+忽略的文件(但不删除任何新添加的文件)
如果文件未被忽略且尚未签入,那么它将保留.注意大写字母X.
git clean -fdX
Run Code Online (Sandbox Code Playgroud)
新的互动模式
git clean
Run Code Online (Sandbox Code Playgroud)
Ali*_*eza 41
好的,在命令行中可以轻松删除不需要的未跟踪文件和文件夹git
,只需这样做:
git clean -fd
Run Code Online (Sandbox Code Playgroud)
在执行之前仔细检查,因为它将删除文件和文件夹而不创建任何历史记录...
同样在这种情况下,-f
代表力并-d
代表目录......
因此,如果您只想删除文件,则只能使用-f
:
git clean -f
Run Code Online (Sandbox Code Playgroud)
如果要删除(目录)和文件,则只能删除未跟踪的目录和文件,如下所示:
git clean -fd
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用-x
flag来包含git忽略的文件.如果要删除所有内容,这将非常有用.
并添加-i
标志,使git要求您在移动中逐个删除文件的权限.
如果您不确定并想先检查一下,请添加-n
标记.
-q
如果您不希望在成功删除后看到任何报告,请使用.
我还创建了下面的图像,使其更具记忆性,特别是我看到很多人-f
有时会混淆清理文件夹或以某种方式混合它!
Chh*_*lal 34
更好的方法是使用:git clean
git clean -d -x -f
Run Code Online (Sandbox Code Playgroud)
这将删除未跟踪的文件,包括(-d)
被忽略的目录和文件git (-x)
.
此外,将-f
参数替换-n
为执行dry-run
或-i
用于交互模式,它将告诉您将删除的内容.
bit*_*007 22
用户互动方式:
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
Run Code Online (Sandbox Code Playgroud)
-i for interactive
-f for force
-d for directory
-x for ignored files(如果需要,添加)
注意: 添加-n或--dry-run以检查它将执行的操作.
Nik*_*nov 16
git clean -f -d -x $(git rev-parse --show-cdup)
将clean应用于根目录,无论您在存储库目录树中何处调用它.我一直使用它,因为它不会强迫你离开你现在工作的文件夹,并允许从你所在的地方清理和提交.
确保标志-f
,-d
,-x
满足您的需求:
-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.
Run Code Online (Sandbox Code Playgroud)
还有其他标志,只需检查git clean --help
.
rah*_*286 16
对我来说只有工作:
git clean -ffdx
Run Code Online (Sandbox Code Playgroud)
在所有其他情况下,我收到一些子目录的消息"跳过目录".
thy*_*bzi 14
我刚刚发明并尝试过这种情况的生活方式(完美无缺):
git add .
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
谨防!在执行此操作之前,请务必提交任何所需的更改(即使在非未跟踪的文件中).
jaz*_*dev 13
如果您只想删除"git status"未列出的文件
git stash save -u
git stash drop "stash@{0}"
Run Code Online (Sandbox Code Playgroud)
我更喜欢这个'git clean'因为'git clean'会删除被git忽略的文件,所以你的下一个版本将不得不重建所有内容,你也可能会失去你的IDE设置.
Oma*_*afi 10
要知道在实际删除之前将删除的内容:
git clean -d -n
它将输出如下内容:
将删除sample.txt
要删除上一个命令的输出中列出的所有内容:
git clean -d -f
它将输出如下内容:
删除sample.txt
就是这样。
git add .
git stash
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息 https://www.atlassian.com/git/tutorials/ saving -changes/git-stash#stashing-your-work
要删除未跟踪的文件,首先应使用命令查看将受清理影响的文件
git clean -fdn
Run Code Online (Sandbox Code Playgroud)
这将显示将要删除的文件列表.现在要实际删除这些文件使用此命令:
git clean -fd
Run Code Online (Sandbox Code Playgroud)
以递归方式清除 git 存储库和所有子模块
以下命令将递归清除当前的 git 存储库及其所有子模块:
Run Code Online (Sandbox Code Playgroud)(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)
删除完整的更改git clean -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
Run Code Online (Sandbox Code Playgroud)
始终 -n
在运行实际命令之前使用,因为它将显示将删除哪些文件.
git clean -n -d
git clean -f -d
Run Code Online (Sandbox Code Playgroud)
默认情况下,git clean
仅删除未被忽略的未跟踪文件.任何与.gitignore中的模式匹配的文件或其他忽略文件都不会被删除.如果您也想删除这些文件,可以-x
在clean命令中添加.
git clean -f -d -x
Run Code Online (Sandbox Code Playgroud)
-i
clean命令还提供了交互模式
git clean -x -i
Run Code Online (Sandbox Code Playgroud)
如果您不是100%确定删除未提交的作品是安全的,则可以使用存储
git stash --all
Run Code Online (Sandbox Code Playgroud)
它还将清除您的目录,但允许您使用带有apply或pop的存储在任何时间点检索文件.然后在稍后您可以使用以下方法清除您的存储:
git stash drop // or clean
Run Code Online (Sandbox Code Playgroud)
小智 7
git clean -f
Run Code Online (Sandbox Code Playgroud)
将从当前 git 中删除未跟踪的文件
git clean -fd
Run Code Online (Sandbox Code Playgroud)
当您要删除目录和文件时,这将仅删除未跟踪的目录和文件
git add --all
,git stash
和git stash drop
, 按此顺序尝试这三个命令以删除所有未跟踪的文件。通过将所有这些未跟踪的文件添加到 git 并将它们隐藏起来,会将所有这些未跟踪的文件移动到存储列表中,并删除顶部的文件,即 stash@{0} 将从存储列表中删除隐藏的更改。
git clean -f to remove untracked files from working directory.
我在博客git-intro-basic-commands中介绍了一些基础知识
用于从git docs中删除未跟踪文件的 uggested命令是git clean
git clean - 从工作树中删除未跟踪的文件
建议的方法:使用的 交互模式,git clean -i
我们可以控制它.让我们看看剩余的可用选项
可用选项:
git clean
-d -f -i -n -q -e -x -X (can use either)
Run Code Online (Sandbox Code Playgroud)
说明:
1. -d
除了未跟踪的文件之外,删除未跟踪的目录.如果未跟踪的目录由不同的Git存储库管理,则默认情况下不会删除它.如果您确实要删除此类目录,请使用-f选项两次.
2. -f, - force
如果Git配置变量clean.requireForce未设置为false,则除非给定-f,-n或-i,否则git clean将拒绝运行.
3.-i, - 相互作用
显示将要执行的操作并以交互方式清理文件.有关详细信息,请参阅"交互模式"
4. -n, - 干跑
不要删除任何东西,只显示将要做的事情.
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忽略的文件.这可能有助于从头开始重建所有内容,但保留手动创建的文件.
带有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 结合使用)来创建原始工作目录以测试干净的构建。普通git clean
命令不会删除未跟踪的文件git version 2.9.0.windows.1
.
$ git clean -fdx # doesn't remove untracked files
$ git clean -fdx * # Append star then it works!
Run Code Online (Sandbox Code Playgroud)
我们可以使用下面的git注释轻松地从当前git工作树中删除本地未跟踪文件.
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
Run Code Online (Sandbox Code Playgroud)
例:
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
链接:
归档时间: |
|
查看次数: |
2144408 次 |
最近记录: |