在git中如何忽略一个目录链?

4

我需要忽略以下内容。

在路径中,例如/a/b/c/d/e/f/g,我需要忽略/d/e/f/g。我还需要能够忽略每个出现在a下面的/d/e/f/g。我尝试过d/e/f/g,但没有成功。有什么想法吗?

2个回答

5

有趣的需求。我很好奇你实际的用例是什么。

像这样做的正确方法是在需要排除的每个子树的父目录中设置一个单独的.gitignore文件(git会在遍历整个目录结构时读取所有的.gitignore文件)。

如果你真的想要一个单一的.gitignore文件... 好吧,我没有尝试过这个,但根据gitignore文档,它主要是一个典型的shell通配符,所以可能有效的方法是:

a/*/d/e/f/g
a/*/*/d/e/f/g
a/*/*/*/d/e/f/g

......重复增加星号的数量,直到您认为合理为止。

我想这里会有一些性能惩罚,但我不知道有多严重。对于大多数在过去5-10年内建造的系统上的大多数存储库来说,这可能不会被注意到。


4

尝试:

**/d/e/f/g

或者:

a/**/d/f/g

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