.git/info/exclude 和 .gitignore 之间的区别

Difference between .git/info/exclude and .gitignore

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

它们都包含 "ignore rules" - 应忽略匹配的未跟踪文件的文件名模式。

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

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