【问题标题】:Meaning of leading slash in `.gitignore` file`.gitignore` 文件中前导斜杠的含义
【发布时间】:2023-04-06 15:11:03
【问题描述】:

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

(我找到的手册页已经仔细隐藏了这些信息。)

【问题讨论】:

    标签: git gitignore


    【解决方案1】:

    这是documentation text

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

    这些是我的猜测:

    • 如果使用in-repository-.gitignore,则.gitignore所在的目录 位于 - 使其相对于存储库根目录并不是很有用。

      对存储库根目录和子目录(以及 .gitignore 在同一目录中)证实了这一点。

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

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

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

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

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

    【讨论】:

    • 我读过文档。问题是,路径名是关于什么的?我讨厌该死的 git doco。如果经过测试,您未经测试的猜测会更有价值。
    • 来自man gitignore,“描述”部分:“从 .gitignore 文件中读取的模式。[...] 这些模式与 .gitignore 文件的位置相匹配”。
    猜你喜欢
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 2016-06-16
    相关资源
    最近更新 更多