什么时候会使用 .git/info/exclude 而不是 ~/.gitignore (core.excludesFil



我有点困惑你什么时候会使用.git/info/exclude而不是~/.gitignore (core.excludesFile)来排除文件?我很清楚何时使用项目存储库中存在的.gitignore文件,该文件特定于该项目,版本控制并通过克隆与其他存储库共享,但我无法理解上述两个要忽略的用户特定文件之间的区别。

因此,我正在寻找~/.gitignore.git/info/exclude之间的差异,而不是.gitignore (project dir).git/info/exclude之间的差异。

更新:我无法想到.git/info/exclude的具体用法,因为我想忽略的任何文件要么落在.gitignore要么~/.gitignore。如果有人可以给出一个应该专门包含在.git/info/exclude中的模式/文件的示例,那将非常有帮助。

将文件名或模式放在全局忽略文件(~/.gitignore$XDG_CONFIG_HOME/git/ignore(中将抑制所有存储库中有关它的投诉。 在每个存储库忽略文件 (.git/info/exclude( 中放置相同的名称或模式将仅禁止对该存储库的投诉。

这些都不是天生的优劣;它们只是不同。 值得注意的是,古代 Git 仅支持存储库内.gitignore.git/info/exclude文件,即没有每用户全局~/.gitignore

如果您个人使用的编辑器制作名称以(例如($而不是.bak.~结尾的备份文件,而其他人都没有(并且其他人的备份文件已经在已提交的.gitignore中(,则可以将*$放在您的个人~/.gitignore中。 如果您只将此编辑器用于此项目,则将其放在.git/info/exclude中可能更有意义。

如果项目本身制作了很多要忽略的文件,那么将这些名称放入提交到项目中的.gitignore文件中是有意义的,但如果有一些原因无法做到这一点,那么将这些模式放入.git/info/exclude是有意义的:它们不应该在其他项目中被忽略

从文档中,

特定于特定存储库但确实如此的模式 不需要与其他相关存储库共享(例如,辅助 位于存储库中但特定于一个用户的文件 工作流(应进入$GIT_DIR/info/exclude文件。

用户希望 Git 在所有情况下忽略的模式(例如, 由用户选择的编辑器生成的备份或临时文件( 通常进入由 core指定的文件。excludes用户指定的文件~/.gitconfig.

如果您正在处理 IDE,它通常具有特定于 IDE 的文件,例如项目设置、工作区设置等。这些文件是特定于用户和存储库的(不同的IDE用于不同的项目...(。可以使用$GIT_DIR/info/exclude文件排除此类文件。

关于这个~/.gitconfig,编辑器可能会留下一些备份或临时文件,例如在编辑过程中将交换文件保留在目录中,因此对于本地系统中的所有存储库,这些文件应该被全局忽略。

问题仍然存在;是否可以安全地假设 .gitignore 和 ~/.gitignore 足以指定应该忽略的内容?

.gitignore应该不是问题,因为它是特定于存储库的,但是~/.gitignore可能是一个问题,请考虑使用~/.gitingore对所有本地存储库全局忽略文件的情况,事实证明该文件是另一个存储库的必要组件,在这种情况下,应该使用$GIT_DIR/info/exclude

最新更新