我遇到git clean
的问题。
请考虑以下情形:
git status -su
?? file_1
?? xyz/file_2
git clean -f
Not removing xyz/file_2
Removing file_1
我不想删除xyz
文件夹,但我想删除其中的file_2
。
为什么git clean
不能递归工作?
答案 0 :(得分:41)
如果忽略它,请使用git clean -xf
。您可以执行git clean -xdf
,但这也会删除未跟踪的目录。使用-n
进行干运行。
http://gitready.com/beginner/2009/01/16/cleaning-up-untracked-files.html
答案 1 :(得分:13)
此外,git clean不能处理目录树。考虑一下
> git status
Untracked files:
../file1.orig
../../file2.orig
git clean -df在这种状态下什么也不做。你必须'cd'进入项目根目录并再次运行'git clean -df'。
答案 2 :(得分:7)
试试这个:
git clean -xdf
如果有效,请告诉我。
答案 3 :(得分:0)
也许您的xyz
文件中有.gitignore
目录?您可以使用-x
切换为clean
来覆盖此行为。此外,如果未跟踪xyz
目录(跟踪内部没有任何内容),除非您传递-d
选项,否则不会删除它。
答案 4 :(得分:0)
请注意,在寡妇上,即使git clean -xdf也可能失败,并且在无法lstat()
的情况下默默地跳过路径;现在(Git 2.23,2019年第三季度),它会发出警告。
请参见commit b09364c的Johannes Schindelin (dscho
)(2019年7月18日)。
帮助者:René Scharfe (rscharfe
),SZEDER Gábor (szeder
)和Junio C Hamano (gitster
)。
(由Junio C Hamano -- gitster
--在commit f3d508f中合并,2019年7月25日)
clean
:路径过长时显示错误消息当
lstat()
失败时,git clean
将中止而没有错误消息,使用户颇为困惑。尤其是在Windows上,默认最大路径长度非常小(尽管在很多情况下,仍有许多方法可以绕过该限制),非常重要的一点是要向用户提供指示,说明为什么它们的命令由于路径太长而失败什么时候做的。
此测试用例确保发出警告,该警告会帮助报告
git-for-windows/git
issue 521的用户请注意,我们在回归测试中暂时设置了
core.longpaths = false
;这样可以确保与core.longpaths
功能的向前兼容,而该功能尚未从Windows的Git上游获得。