我在使用 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
不能递归地工作?
我在使用 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
不能递归地工作?
git clean -xf
。你也可以用git clean -xdf
,但这将删除未跟踪的目录。使用-n
进行干运行。另外,git clean 不会在目录树的上层工作。考虑下面这种情况:
> git status
Untracked files:
../file1.orig
../../file2.orig
在这种情况下,git clean -df不会起作用。您必须进入项目根目录并再次运行'git clean -df'
git status
虽然有这种功能,但可能是故意这样设计的。 - cardamom试试这个:
git clean -xdf
如果可以的话,请告诉我是否有效。
也许你在你的 .gitignore
文件中有 xyz
目录?你可以使用 -x
开关来覆盖这种行为,以便使用 clean
命令。此外,如果 xyz
目录没有被跟踪(里面没有被跟踪的内容),除非你传递 -d
选项,否则它不会被删除。
git clean -xdf
也可能失败,并且当它无法lstat()
时会悄悄地跳过某些路径。现在(Git 2.23, 2019年第三季度),它会给出警告。
请参阅提交 b09364c(2019年7月18日)由Johannes Schindelin(dscho
)完成。
协助者:René Scharfe(rscharfe
),SZEDER Gábor(szeder
)和Junio C Hamano(gitster
)。
(由Junio C Hamano -- gitster
--在提交 f3d508f中合并,2019年7月25日)
clean
:当路径过长时显示错误消息当lstat()
失败时,git clean
会中止而不显示错误消息,让用户感到困惑。
特别是在Windows上,默认的最大路径长度非常小(尽管有很多方法可以规避这个限制),因此非常重要给用户一个指示,说明他们的命令因为路径过长而失败了。
这个测试用例确保发出警告,这将帮助报告了git-for-windows/git
issue 521的用户。
请注意,在回归测试中我们暂时设置了core.longpaths = false
;这确保了与尚未从Git for Windows上游传输的core.longpaths
功能的向前兼容性。