mkdir repo
cd repo
git init
mkdir temp
touch temp/in.tmp
touch out.tmp
echo '*tmp' > .gitignore
使用 git clean -Xn
命令会显示 Would remove out.tmp
但我想一起删除 temp/in.tmp
git clean -Xdn
也无法正常工作,但是切换到 temp
目录并运行 git clean -Xn
命令会显示 Would remove in.tmp
所以,我想知道是否有一条命令可以删除在 .gitignore
中列出的所有文件列表(包括子目录),在这种情况下,如何使用 git clean
命令删除 temp/in.tmp
和 out.tmp
。
$ git --version
git version 1.9.5.msysgit.1
我发现了一些奇怪的事情
在temp
目录中添加一个文件并暂存它,执行git clean -Xn
似乎可以正常工作。
touch temp/a.txt
git add temp/a.txt
git clean -Xn
它显示
Would remove out.tmp
Would remove temp/in.tmp
但为什么会发生那种事情呢?
-X
选项时才遍历索引中的目录,忽略temp
目录(因为它最初不知道它,只有在添加文件后才知道)。我可以在Ubuntu上使用Git 2.1.4复制此问题。为什么不在git@vger.kernel.org上询问呢? - krlmlr