.gitignore:如何忽略嵌套目录?

57
我有以下的目录结构:
test/a
test/b/c
test/a/b/Ouput
test/c/d/e/Output
test/f/Output

我想忽略 "test" 目录下所有的 "Output" 目录。我尝试了 test/**/Output,但它没有生效。我错在哪里了?


1
@hammar,自v1.8.2(2013年3月8日)以来,git接受在.gitignore文件中使用**。 - Leszek Jasek
2个回答

57

你说你想让Output/模式只在 test/目录下匹配,所以在test/目录下创建一个.gitignore文件,并添加以下内容:

Output/
如果您将此模式放在顶级.gitignore文件中,则它将匹配顶级目录下所有子目录中的文件。

3
如果我想在我的顶级.gitignore中执行该操作怎么办? - artagnon
@RamkumarRamachandra:为什么你不想把它放在你的 test/.gitignore 文件中?你已经说过你只想让 Output 模式在 test 目录下匹配,因此这个模式自然应该属于这个目录。 - CB Bailey
1
请考虑使用Output/而不是Output。问题要求忽略名为Output的目录。 - CB Bailey
之前的问题没有人回答:是的,这也适用于顶层的.gitignore - Neil Traft
真的救了命! - kayochin

38
1.8.2版本2013年3月8日)以来,git支持在.gitignore文件中使用**,因此使用test/**/Output/将仅忽略test目录下的Output子目录。

1
这是一个比被接受的答案更优雅的解决方案。 - user3496912

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接