在`.gitignore`文件中导致斜杠的含义

Nor*_*sey 32 git gitignore

如果我将模式放在.gitignore带有前导斜杠的文件中,斜杠是指引用.gitignore文件所在的目录,还是引用整个存储库的根目录?

(我发现的手册页已经仔细隐藏了这些信息.)

Paŭ*_*ann 29

这是文档文本:

  • 前导斜杠与路径名的开头匹配.例如,"/*.c"匹配"cat-file.c"但不匹配"mozilla-sha1/sha1.c".

这些是我的猜测:

  • 如果您使用in-repository- .gitignore,.gitignore 它所在的目录- 使它相对于存储库根目录并不是真正有用.

    在存储库根目录和子目录(以及.gitignore在同一目录中)中具有相同命名文件的简短实验 证实了这一点.

  • 如果你使用.git/info/excludecore.excludesfile,我想它是相对于存储库根目录.

    这也是(对于信息/排除)由同一测试确认的(对1.7.3.4的两个测试).

Schnouki找到了关于此的文档的正确部分(强调我的):

  • [...]
  • .gitignore与路径相同的目录中的文件或任何父目录中读取的模式,较高级别文件中的模式(直到工作树的顶层)被较低级别文件中的模式覆盖到包含该文件的目录中文件.这些模式相对于.gitignore文件的位置匹配.项目通常.gitignore在其存储库中包含此类文件,其中包含作为项目构建的一部分生成的文件的模式.
  • [...]

可以说,为了清楚起见,可以在上面引用的后面部分再次重复这一事实.

  • 来自`man gitignore`,"Description"部分:"从.gitignore文件读取的模式.[...]这些模式相对于.gitignore文件的位置匹配". (5认同)