gpt4 book ai didi

git clean -ndX 不删除目录

转载 作者:太空狗 更新时间:2023-10-29 13:53:30 25 4
gpt4 key购买 nike

使用 .gitignore:


富/

和一个 git 仓库:

./quux
./quux/foo
./quux/foo/bar
./quux/foo/bar/baz

由于 foo 被忽略,git 假定工作目录是干净的:

% git status
# On branch master
nothing to commit, working directory clean

git clean -ndx 打印:

% git clean -ndx
Would remove quux/

但是 git clean -ndX 不打印任何东西。我希望它也能删除 quux/

这是一个错误还是我没有得到的一些 gitignore 功能?如果我将一些文件添加到 quux 并提交它。比 git clean 将尝试按预期删除 quux/foo/

我的 git 很新:git 版本 1.8.3.4

最佳答案

$ git init .
$ echo foo/ >.gitignore
$ git add .;git commit -am ignore
$ mkdir -p foo/bar bar/foo
$ touch foo/bar/1 bar/foo/1
$ git clean -ndx
Would remove bar/
Would remove foo/
$ git clean -ndX
Would remove foo/
$

git help clean 说:

   -X
Remove only files ignored by Git. This may be useful to rebuild
everything from scratch, but keep manually created files.

这意味着它不会删除手动创建的东西,除非它被明确忽略。

在这种情况下,bar 目录是手动创建的,没有明确忽略,因此不会被删除。

quux 目录也是如此。

要“修复”这个问题,您需要通过添加文件将 bar 目录添加到 git 的控制下:

$ touch bar/x
$ git add bar/x
$ git commit -am add\ x
$ git clean -ndX
Would remove bar/foo/
Would remove foo/
$

关于git clean -ndX 不删除目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19905016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com