【问题标题】:Difference between .git/info/exclude and .gitignore.git/info/exclude 和 .gitignore 之间的区别
【发布时间】:2024-05-04 14:25:03
【问题描述】:

当我将一个 repo 从 GitLab 克隆到本地时,它连同源代码还在根文件夹调用者 .gitignore 中提取了一个文件。 还有一个名为.git 的文件夹,其中包含info 中的一个目录,其中包含一个名为exclude 的文件。 哪个是忽略(对我来说忽略和排除意味着相同)?是忽略还是排除?

【问题讨论】:

  • 忽略什么与排除什么?这两个文件都有一个目的,但您并不清楚您在寻找什么目的。
  • 您不应该触摸.git 中的任何内容。 .gitignore 是您提供的东西。 .git 文件不应手动修改。
  • @MadPhysicist 我认为这个问题很清楚。 newb7777 只是想知道这两个不同文件的用途。
  • @EugeneSh。 - 该建议不适用于info/exclude 文件

标签: git ignore


【解决方案1】:

它们都包含“忽略规则” - 应该忽略匹配的未跟踪文件的文件名模式。

不同之处在于.gitignore 中的规则是通过repo 共享的,而info/exclude 中的规则则不是。因此,如果出于某种原因您需要本地忽略单个克隆中的某些路径,您可以使用info/exclude;但是如果在 all 克隆中应该忽略路径,则可以使用 .gitignore

【讨论】:

  • 明确一点:您在克隆 repo 时获得的 info/exclude 文件不是源上相应文件的副本。它是 git 新创建的,用于放置特定于新克隆的规则。
  • 是的,这是正确的。当我从远程仓库克隆仓库时,排除是新创建的。 .gitignore 来自 GitLab。
  • 如果本地仓库中有两个文件,.gitignoreinfo/exclude 哪个优先?当您将其他存储库克隆到本地存储库并使用排除列表更新您的 info/exclude 文件时,可能会出现这种情况。
  • .gitignore 优先级更高。
【解决方案2】:

虽然问题不在于“.gitignore”或“info/exclude”哪个更好,但需要注意的一点是“gitignore”比排除是即时的。它在声明过程中立即生效,而“gitignore”在您克隆存储库时开始生效。

【讨论】:

    最近更新 更多