为什么git clean -dX不会删除我忽略的目录?

时间:2013-06-12 06:57:06

标签: git gitignore git-clean

我想git清理所有未跟踪的文件,我忽略

我认为git clean -dX是明显的解决方案,但它没有做任何事情:

# Set up test directory
mkdir git-test && cd git-test
git init && touch x && git add x && git commit -m Initial

mkdir -p folder1/folder2/
touch    folder1/folder2/file

echo "folder2/" >> .gitignore

git clean -fdX     # Does nothing

为什么不删除folder1/folder2/

The docs say

  • **/foo将文件或目录foo与任何位置匹配,与模式foo相同

所以我的folder2/模式与/folder1/folder2/匹配,而-X应该清除它。

发生了什么事?

1 个答案:

答案 0 :(得分:1)

你使用的是什么版本的Git?您可能遇到过这个错误:Bug: git ls-files and ignored directories

此错误在v1.7.11.2中为fixed。来自release notes

  
      
  • git ls-files --exclude=t -i”并未将t/下的任何内容视为排除在外,因为它没有注意在行走索引时排除引导路径。 excluded()的其他两位用户也会更新。
  •