你什么时候使用.git / info / exclude而不是.gitignore来排除文件?

时间:2014-04-07 08:09:37

标签: git gitignore

我对使用.git/info/exclude.gitignore排除文件的利弊感到有些困惑。

它们都处于存储库/项目的级别,因此它们如何区别以及何时应该使用.git/info/exclude

4 个答案:

答案 0 :(得分:128)

.gitignore的优势在于,与.git/info/exclude不同,它可以检入存储库本身。另一个优点是,您可以拥有多个.gitignore个文件,每个目录/子目录中有一个用于特定于目录的忽略规则,与.git/info/exclude不同。

因此,.gitignore可用于存储库的所有克隆。因此,在大型团队中,所有人都忽略了相同类型的文件示例*.db*.log。 由于多个.gitignore,您可以拥有更具体的忽略规则。

.git/info/exclude仅适用于单个克隆,因此一个人在其克隆中忽略的内容在某些其他人的克隆中不可用。例如,如果有人使用Eclipse进行开发,那么开发人员可能会将.build文件夹添加到.git/info/exclude,因为其他开发人员可能没有使用Eclipse。

通常,必须被普遍忽略的文件/忽略规则应该放在.gitignore中,否则只想在本地克隆上忽略的文件应该进入.git/info/exclude

答案 1 :(得分:22)

谷歌搜索:3 ways of excluding files

  1. .gitignore适用于此存储库的每个克隆(版本化,每个人都会拥有它),
  2. .git/info/exclude仅适用于此存储库的本地副本(本地,不与他人共享),
  3. ~/.gitconfig适用于您计算机上的所有存储库(本地,不与他人共享)。
  4. 3.实际上需要在您的计算机上设置配置:

    git config --global core.excludesfile '~/.gitignore'
    

答案 2 :(得分:11)

仅提供我们的(真实世界)体验:当我们必须在每个开发环境中自定义一些配置文件但仍希望源代码在repo中维护并可供其他开发人员使用时,我们开始使用.git / info / exclude 。

这样,一旦克隆和修改本地文件,就可以从提交中排除,而不会影响仓库中的原始文件,但也不必在仓库中被忽略。

答案 3 :(得分:2)

使用.gitignore忽略特定于项目的规则。使用exclude或全局忽略文件来忽略特定于环境的规则。

例如,我的全局忽略文件忽略了我正在使用的任何编辑器生成的临时文件 - 该规则特定于我的环境,并且可能与同一项目中的其他开发人员不同(可能他们使用不同的编辑器)。 OTOH,我的项目.gitignore文件忽略了诸如API密钥和构建工件之类的东西 - 那些用于项目,并且对于项目中的每个人都应该是相同的。

这有帮助吗?