子文件夹中有多个.gitignore文件

31

是否可以在子文件夹中拥有一个.gitignore文件,以便更好地控制需要忽略的内容而不会影响更大的“基本”gitignore?

例如,有根目录的.gitignore,但是我想要在我的文件夹中有另一个.gitignore,仅适用于该文件夹及其子文件夹,而不是在那个文件中写入/path/to/folder。


4
你试过了吗? - alfunx
@alfunx 没错,我弄错了。实际上我试过了,但我想忽略修改过的文件,但当我创建一个新文件时它却被忽略了。 - user3808318
1个回答

43
答案是:是的,可以在子文件夹中拥有一个.gitignore文件。 文档:
当决定是否忽略路径时,Git通常从多个源检查gitignore模式,按优先顺序从高到低(在一个优先级级别内,最后匹配的模式决定结果):
- 支持它们的命令的命令行读取的模式。 - 与路径相同目录中的.gitignore文件,或任何父目录中的文件,较高级别文件(直到工作树的顶层)中的模式被覆盖,下降到包含该文件的目录的较低级别文件。 这些模式相对于.gitignore文件的位置进行匹配。 项目通常在其存储库中包括这样的.gitignore文件,其中包含作为项目构建的一部分生成的文件的模式。 - [...] 感谢alfunx

2
@DevJoe 这个问题是一个是或否的问题。我已经通过文档扩展了答案。 - Cœur
1
你如何从__子文件夹__的gitignore中取消否定,即在__根目录__的gitignore中有subfolder/!subfolder/.gitignore,然后在__子文件夹__的gitignore中有!file.json!subSubFolder/*.js - user14492
@user14492 我不会那样做。相反,不要忽略文件root/.gitignore中的子文件夹;根本不需要提到它。然后,在文件root/subfolder/.gitignore中,要么(a)忽略那些需要忽略的文件和目录,要么(b)忽略所有内容,然后取消忽略你想要包含在仓库中的文件和目录(行!filename)。 - Teemu Leisti

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