【发布时间】:2023-04-06 15:11:03
【问题描述】:
如果我在.gitignore 文件中放置一个带有前导斜杠的模式,斜杠是指.gitignore 文件所在的目录,还是指整个存储库的根目录?
(我找到的手册页已经仔细隐藏了这些信息。)
【问题讨论】:
如果我在.gitignore 文件中放置一个带有前导斜杠的模式,斜杠是指.gitignore 文件所在的目录,还是指整个存储库的根目录?
(我找到的手册页已经仔细隐藏了这些信息。)
【问题讨论】:
- 前导斜杠匹配路径名的开头。例如,“/*.c”匹配“cat-file.c” 但不是“mozilla-sha1/sha1.c”。
这些是我的猜测:
如果使用in-repository-.gitignore,则.gitignore所在的目录
位于 - 使其相对于存储库根目录并不是很有用。
对存储库根目录和子目录(以及
.gitignore 在同一目录中)证实了这一点。
如果您使用.git/info/exclude 或core.excludesfile,我想它是相对的
到存储库根目录。
这也是由同一测试(1.7.3.4 上的两个测试)确认的(用于信息/排除)。
Schnouki 找到了有关此文档的正确部分(强调我的):
- [...]
- 从与路径相同的目录中的
.gitignore文件中读取的模式,或 任何父目录,具有更高级别文件中的模式(直到顶层 工作树的)被较低级别文件中的那些覆盖到 包含该文件的目录。 这些模式匹配相对于.gitignore文件。 项目通常在其 存储库,包含作为项目构建的一部分生成的文件的模式。- [...]
为了清楚起见,可以说这个事实可以在上面引用的后面部分再次重复。
【讨论】:
man gitignore,“描述”部分:“从 .gitignore 文件中读取的模式。[...] 这些模式与 .gitignore 文件的位置相匹配”。