我想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/
?
**/foo
将文件或目录foo
与任何位置匹配,与模式foo
相同所以我的folder2/
模式与/folder1/folder2/
匹配,而-X
应该清除它。
发生了什么事?
答案 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()
的其他两位用户也会更新。