什么时候使用.git / info / exclude代替.gitignore排除文件?

我对使用.git/info/exclude.gitignore来排除文件的优点和缺点感到困惑。

他们都是在仓库/项目的水平,所以他们有什么不同,我们应该什么时候使用.git/info/exclude

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

所以, .gitignore可以在仓库的所有克隆中使用。 因此,在大团队中,所有人都忽略了相同types的文件Example *.db*.log 。 由于多个.gitignore ,你可以有更具体的忽略规则。

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

一般来说,文件/忽略必须被忽略的规则应该放在.gitignore ,否则你只想在本地克隆上忽略的文件应该放到.git/info/exclude

Googlesearch: 3种排除文件的方法

  • .gitignore被应用到repo的每一个克隆(它作为一个版本化的文件来),
  • .git/info/exclude仅适用于您的本地版本库。

只是为了提供我们(真实世界)的经验:当我们需要在每个开发环境中定制一些configuration文件时,我们开始使用.git / info / exclude,但是仍然希望源代码在repo中维护,并且可供其他开发人员使用。

这样,本地文件,一旦克隆和修改,可以从提交中排除,而不会影响回购协议中的原始文件,但不一定在回购中被忽略。