有没有可能忽略子目录中的.gitignore规则?

我想忽略除了根目录中的.gitignore规则以外的子目录中的所有.gitignore规则。

例如)我已经在目录结构/a .gitignore文件。

/a/b也有.gitignore文件。 假设/a/a b.txt文件。

/a/b.config文件。 .gitignore/a/b定义了.config

.config文件将被/a/b .gitignore忽略。

但我真的想通过忽略子目录中的.gitignore规则来跟踪.config文件。

可能吗?

提前致谢

你的问题不太清楚,但是如果有一些你想要不同的gitignore规则的子目录,你可以在那个目录中创build一个新的.gitignore。

假设你有:

项目/的.gitignore
项目/材料/的.gitignore

.gitignore中的stuff /将覆盖根目录中的.gitignore。

git help gitignoreman gitignore有关于什么是可能的更多的信息。

假设你想要在你的仓库中包含node_modules ,但是某个模块下面有自己的.gitignore 。 您可以通过将以下内容添加到根.gitignore文件来取消规则:

 # Make sure to include everything in node_modules. !node_modules/** 

这里问题的关键是排除父目录。 从$ man gitignore

如果排除该文件的父目录,则不可能重新包含文件。 由于性能的原因,Git没有列出排除的目录,所以包含文件的任何模式都不起作用,不pipe它们在哪里定义。

以下是我如何工作。 鉴于:

 /a/... /b/foo /c/... 

/.gitignore

 /* !/b 

那么/b/foo将显示为包含文件,而/a/c所有内容都将被排除。 权衡是你必须添加一个否定的任何目录,你想包括文件的所有父母。

据我所知,没有办法做到这一点。 由于本地.gitignore将覆盖根ginignore我的解决方法是手动添加。

 git add --force [ your file and folder]