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

发布于 2024-11-18 13:13:06 字数 120 浏览 3 评论 0原文

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

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

If I put a pattern in a .gitignore file with a leading slash, does the slash refer to the directory in which the .gitignore file is located, or does it refer to the root of the whole repository?

(The man pages I have found have hidden this information carefully.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟柳画桥 2024-11-25 13:13:06

这是文档文本

  • 前导斜杠与路径名的开头匹配。例如,“/*.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 文件
    存储库,包含作为项目构建的一部分生成的文件的模式。
  • [...]

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

This is the documentation text:

  • A leading slash matches the beginning of the pathname. For example, "/*.c" matches "cat-file.c"
    but not "mozilla-sha1/sha1.c".

These are my guesses:

  • If you use an in-repository-.gitignore, the directory in which the .gitignore
    is located - it is not really useful to make it relative to the repository root.

    A short experiment with same-named files in the repository root and a subdirectory (and a
    .gitignore in this same directory) confirms this.

  • If you use an .git/info/exclude or core.excludesfile, I suppose it is relative
    to the repository root.

    Also this is (for info/exclude) confirmed by the same test (both tests on 1.7.3.4).

Schnouki found the right part of the documentation about this (emphasis mine):

  • [...]
  • Patterns read from a .gitignore file in the same directory as the path, or in
    any parent directory, with patterns in the higher level files (up to the toplevel
    of the work tree) being overridden by those in lower level files down to the
    directory containing the file. These patterns match relative to the location of
    the .gitignore file.
    A project normally includes such .gitignore files in its
    repository, containing patterns for files generated as part of the project build.
  • [...]

One could say that this fact could have been repeated again at the later part quoted above, for clarity.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文