11
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也不起作用,但cdtemp目录并运行git clean -Xn它显示Would remove in.tmp

所以我想知道是否有一个命令可以删除.gitignore包含子目录中的所有文件列表,在这种情况下如何使用git clean删除temp/in.tmpout.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

但为什么会这样?

4

1 回答 1

9

你需要-x,因为你想删除被忽略的文件.gitignore

git clean -fdx

将成功为您清理一切

macsp:repo proto$ git clean -fdxn Would remove .gitignore Would remove out.tmp Would remove temp/ macsp:repo proto$

于 2015-08-28T11:07:30.310 回答