如何消除当地的(未跟踪)的文件从目前的Git工作的树吗?
-
09-06-2019 - |
题
你怎么删除未跟踪当地文件从前工作的树吗?
解决方案
按上面的输的文档 git干净
清除未跟踪文件的工作树
步骤1显示什么会被删除,通过使用 -n
选项:
# Print out the list of files which will be removed (dry run)
git clean -n
干净的步骤 要注意:这将删除的文件:
# Delete the files from the repository
git clean -f
- 删除目录、运行
git clean -f -d
或git clean -fd
- 除去被忽略的文件,跑
git clean -f -X
或git clean -fX
- 除忽视和非忽略文件,以运行
git clean -f -x
或git clean -fx
注意到 这种情况下差的 X
对于后两个的命令。
如果 clean.requireForce
被设定为"真正的"(默认)在配置,一个需要指定 -f
否则什么也不会实际上发生。
再次看看 git-clean
文件的更多信息。
选项
-f
,--force
如果从初配置变量的清洁。requireForce不是设定为 假,git清洁将拒绝运行,除非给出
-f
,-n
或-i
.
-x
不要使用的标准忽略规则从阅读。gitignore(每 目录),并
$GIT_DIR/info/exclude
, 但仍然使用该忽略 规定给与-e
选项。这将允许消除所有未跟踪文件, 其中包括建立产品。这可以使用(可能结合 }类复)创建一个原始的工作目录来测试一个干净的 建立。
-X
只删除的文件,忽视通过饭桶。这可能是有用的重建 一切从头开始,但保留手工建立的文件。
-n
,-dry-run
不实际上删除任何东西,只是显示会怎么做。
-d
清除未跟踪目录,此外,也没有跟踪文件。如果一个 未跟踪目录是管理一个不同的内容代码是 不是去除的默认。使用
-f
选择两次如果你真的想要 删除这样一个目录。
其他提示
使用 git clean -f -d
要确保 目录 也删除。
然后你可以检查你的文件是真的了 git status
.
我很惊讶没有人提到此前:
git clean -i
代表 互动 你会得到一个快速概述了什么是删除提供的可能性,包括/排除受影响的文件。总体而言,仍然快于运行强制性的 --dry-run
之前的现实清洗。
你将要抛在一个 -d
如果你还想要照顾的空白文件夹。在结束,这使得对于一个很好的别名:
git iclean
这就是说,额外的手保持的交互式命令可以累经验丰富的用户。这些天我只使用已经提到 git clean -fd
如果未跟踪目录是个混储存库的自己的(例如模块),需要使用 -f
两次:
git clean -d -f -f
简单的方法来清除未跟踪文件
删除所有未跟踪文件,简单的 的方式是 添加所有的人第一个 和 重置的仓库 如下面
git add --all
git reset --hard HEAD
我喜欢 git stash push -u
因为你可以撤销他们的所有 git stash pop
.
编辑:我也找到一种方式来显示未跟踪文件在一个藏匿(例如 git show stash@{0}^3
) https://stackoverflow.com/a/12681856/338986
EDIT2: git stash save
是废弃的青睐 push
.谢谢@脚狼。
这是什么我总是使用:
git clean -fdx
对于一个非常大的项目则可能要跑好几次。
混帐干净 是你在找什么。它是用于清除未跟踪文件的工作树。
如果需要清除未跟踪文件,从特别的子目录,
git clean -f {dir_path}
和合并办法删除的未跟踪dir/文件和忽略文件。
git clean -fxd {dir_path}
在此之后,你会修改文件的只在 git status
.
git clean -fd
删除目录
git clean -fX
除去被忽略的文件
git clean -fx
删除忽视和联合国被忽略的文件
可以使用所有上述选项组合作
git clean -fdXx
检查git手册用于更多的帮助
删除所有额外的文件和文件夹在这个仓库+子
这可以让你在同样的状态,因为新鲜的克隆。
git clean -ffdx
删除所有额外的文件夹和文件,在该仓库,但不是它的子
git clean -fdx
只删除额外的文件夹,但没有文件(ex。建立文件夹)
git clean -fd
删除额外的文件夹+忽略的文件(但没有任何新增加的文件)
如果文件不是被忽略,尚未检查,那么它保持。注意资本X.
git clean -fdX
新的互动模式
git clean
OK, 删除 不需要的未跟踪文件和文件夹 很容易用 git
在命令行,只要做到这一点像这样:
git clean -fd
仔细检查 之前这样做,因为它将删除的文件和文件夹没有作出任何历史...
也是在这种情况下, -f
代表着力量和 -d
代表目录...
所以,如果你想要删除的文件,可以使用 -f
只有:
git clean -f
如果你想删除(目录)和文件,可以删除仅未被追踪的目录和文件这样的:
git clean -fd
此外,您可以使用 -x
标志包括文件,这是忽略通过饭桶。这将是有益的,如果你想要删除的一切。
和加入 -i
标志,使git问你的权限,删除文件的一个通过一个在旅途中。
如果你不确定,并要检查的东西第一,加 -n
标志。
使用 -q
如果你不想看到任何报告之后成功删除。
我还创建下面的图像,以使它更memorisable,特,我见过很多人混淆 -f
为了清洁的文件夹时或混合起来以某种方式!
一个更好的办法是使用:git干净
git clean -d -x -f
这消除未跟踪文件,其中包括目录 (-d)
和文件忽略 git (-x)
.
还有,代替 -f
参与 -n
执行 dry-run
或 -i
互动的模式和它会告诉你什么会被删除。
用户互动的方式:
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
-我为交互式
-f力
-d的目录
-x忽略文件(如果添加所需要的)
注: 添加 -n 或 --干式运行 只是检查什么它将会做的。
git clean -f -d -x $(git rev-parse --show-cdup)
适用于清洁根目录,不管你叫它在储存库的目录树。我用所有的时间,因为它不能强迫你离开的文件夹里你现在的工作和允许清洁和犯权利的地方。
可以肯定,标志 -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.
还有其它标志,以及可用的,只是检查 git clean --help
.
对我来说只有下列工作:
git clean -ffdx
在所有其他情况下,我得到消息 "跳过目录" 一些子目录。
一lifehack对于这样的情况我只要发明了,并试图(即完美的作品):
git add .
git reset --hard HEAD
当心! 可以肯定的 提交任何必要的改变 (甚至在非未跟踪文件) 在执行这.
如果你只是想要删除的文件列为未纳入管理由'混帐状态'
git stash save -u
git stash drop "stash@{0}"
我喜欢这个'混帐清洗',因为'混帐清洁'将删除的文件 忽略git,所以你下一步的建立将必须重建一切 你可能会失去你的IDE设置了。
知道什么会被删除之前,实际上删除:
git clean -d -n
它将输出的东西,如:
将会消除sample.txt
删除一切中所列出的先前的命令:
git clean -d -f
它将输出的东西,如:
除去sample.txt
删除的未跟踪文件,你应该第一次使用的指令,以查看文件将受到影响的清洁
git clean -fdn
这将显示你的文件列表,这将被删除。现在实际上删除这些文件使用这种命令:
git clean -fd
要小心,同时运行`混帐清洗`的命令。
总是用 -n
前运行的实际命令,因为它将告诉你什么的文件会得到清除。
git clean -n -d
git clean -f -d
默认情况下, git clean
只会除未跟踪文件,是不容忽视。任何文件相匹配的模式在你的.gitignore或其他忽略文件将不会被删除。如果你想删除这些文件也可以添加一个 -x
到干净的命令。
git clean -f -d -x
还有的交互模式可用 -i
与清理的命令
git clean -x -i
或者
如果你不是100%肯定的,删除未提交的工作是安全的,可以使用,而不是藏起来
git stash --all
它也将明显你的目录,但是给你的灵活性,以检索的文件在任何时候使用 藏匿 与 适用 或 pop.然后在稍后的一点你可以清楚你的藏匿使用:
git stash drop // or clean
正常的 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!
git clean -f to remove untracked files from working directory.
我已经涵盖一些基础知识,在这里,在我的博客 混帐介绍基本的命令
uggested命令 除去未跟踪文件svn文档 是 git干净
git干净 -删除未跟踪文件的工作树
建议的方法: 互动的模式的使用 git clean -i
因此,我们可以拥有控制权。让我们看到剩余的可用的选项。
可用的选项:
git clean
-d -f -i -n -q -e -x -X (can use either)
说明:
1. -d
清除未跟踪目录,此外,也没有跟踪文件。如果一个未跟踪目录是管理一个不同的内容代码 这不是去除的默认。利用-f项的两倍,如果你真的想消除这样一个目录。
2.-f,力--
如果从初配置变量的清洁。requireForce是不设置虚假的,git清洁将拒绝运行,除非给予-f-n或 -i。
3.-我--交互式
显示什么会做的干净的文件以交互方式。见"的互动模式"的详细信息。
4.-n,--干式运行
不实际上删除任何东西,只是显示会怎么做。
5.-q--安静
安静点,仅报告的错误,但没有的文件都成功地除去。
6.-e、--排除=
除了这些发现。gitignore(每目录),并$GIT_DIR/info/排除,也考虑这些模式是在 设定的忽略规则中的作用。
7.-x
不要使用的标准忽略规则从阅读。gitignore(每目录),并$GIT_DIR/info/排除,但是仍然使用该忽略 规则给予-e选择。这将允许消除所有未跟踪文件,包括建立产品。这可以使用(可能 结合}类复)创建一个原始的工作目录来测试一个干净的建立。
8.-X
只删除的文件,忽视通过饭桶。这可能有助于重建一切,从头开始,但保留手工建立的文件。
我们可以很容易去除的地方也没有跟踪文件,从目前的git工作树通过使用下git意见。
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
例如:
git reset --hard HEAD
链接:
清理出git仓库和所有子递归
将以下命令,将清理掉 目前git仓库及其所有子递归:
(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)
oh-my-aix系统管理的各个方面和扩展 与 aix系统管理的各个方面和扩展 提供这些伟大的别名通过从初插件。它们可用于庆典。
gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'
gclean
消除未跟踪目录,此外,也没有跟踪的文件.gpristine
难重的地的变化,除未被追踪的目录, 未纳入管理和文件 不要使用的标准忽略规则从阅读。gitignore(每目录),并$GIT_DIR/info/排除,但是仍然使用该忽略规则给予-e选择。这将允许消除所有未跟踪文件,包括建立产品。这可以使用(可能结合}类复)创建一个原始的工作目录来测试建立一个干净的.
git clean -f
将删除的未跟踪文件,从目前的git
git clean -fd
当你想要删除的目录和文件,这将删除仅未被追踪的目录和文件
注:首先浏览的目录和结帐的分支,你想干净。
-i
互动的模式和它会告诉你什么会被删除,你可以选择一个行动列表。
清洁 文件 只有[文件夹中不会被列出,并不会被清洗]:
$ git clean -i
清洁 文件和文件夹:
$ git clean -d -i
-d
包括的目录。
如果你选择 c
从该名单。该文件将删除不是跟踪以及也将删除的文件/文件夹的是你的混乱。
例如:如果你重组的文件夹在你的偏远和拉变为当地计算机。文件是由其他人创建的最初将在过去的文件夹和在新的一个,你重组。