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

15

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


1
忽略什么与排除什么?两个文件都有其用途,但您并没有明确说明您所寻找的目的。 - Mad Physicist
你不应该触碰 .git 中的任何内容。.gitignore 是你提供的东西。.git 文件不应该手动修改。 - Eugene Sh.
1
@MadPhysicist,我认为问题非常清楚。newb7777只是想知道这两个不同文件的目的是什么。 - klutt
@klutt。我想你是对的。我应该投票关闭为重复而不是不清楚。 - Mad Physicist
1
@EugeneSh. - 这个建议不适用于 info/exclude 文件。 - Mark Adelsberger
2个回答

28

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

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


2
需要明确的是:当你克隆仓库时得到的 info/exclude 文件并不是来自源仓库中对应的文件的副本。它是由 Git 新创建的,用于存放特定于新克隆的规则的地方。 - Mark Adelsberger
是的,那是正确的。当我从远程仓库克隆时,exclude是新创建的。.gitignore是来自GitLab。 - newb7777
1
如果您在本地存储库中同时拥有.gitignoreinfo/exclude文件,哪个文件会优先生效?当您将别人的存储库克隆到本地存储库并更新了自己的info/exclude文件时,可能会出现这种情况。 - newb7777
2
.gitignore 优先级更高。 - Mark Adelsberger

-4

尽管这个问题不是关于 ".gitignore" 或 "info/exclude" 哪个更好,但需要注意的一点是,“gitignore” 比 exclude 更快。它在状态过程中立即生效,而 “gitignore” 则在克隆仓库时开始生效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接