我有一个包含一个带有一些构建和配置文件的子树的仓库。
main
├── .gitignore
└── build (subtree)
├── .gitignore
└── config.user.json
└── config.site.json
└── index.js
我想忽略来自config.user.json
存储库和main
子树的build
,但保持 config.site.json
位于主存储库中,但忽略 build
子树。
!build/config.site.json # (this is supposed to reverse the ignore)
build/config.user.json
build/config.site.json
build/config.user.json
这是否可行,或者我应该将配置文件放置在与build
不同的文件夹中。我有一种感觉,子树中的.gitignore将覆盖主仓库中的.gitignore,而不是相反。
REF:Git Subtree Specific Ignoring
欢呼声
gitignore文件中的每一行都指定一个模式。在决定是否忽略路径时,Git通常会从多个源检查gitignore模式,并按照从高到低的顺序(从优先级到级别,https://git-scm.com/docs/gitignore最后一个匹配模式决定结果):
从与路径相同的目录中或任何父目录中的.gitignore文件读取的模式,其中较高级别文件(直到工作树的最高级别)中的模式被
。- 被较低级别文件中的模式覆盖向下到包含文件的目录