我对使用.git/info/exclude和.gitignore来排除文件的利弊有点困惑。
它们都在存储库/项目级别,那么它们有什么不同,什么时候应该使用.git/info/exclude ?
我对使用.git/info/exclude和.gitignore来排除文件的利弊有点困惑。
它们都在存储库/项目级别,那么它们有什么不同,什么时候应该使用.git/info/exclude ?
google: 3种排除文件的方法
.gitignore应用于这个存储库的每个克隆(有版本,每个人都有), .git/info/exclude仅应用于此存储库的本地副本(本地,不与他人共享), ~ /。Gitignore应用于您计算机上的所有存储库(本地的,不与他人共享)。
3.实际上需要在你的电脑上设置一个配置:
git config --global core.excludesfile '~/.gitignore'
.gitignore的第一个优点是它被版本化到存储库本身,不像.git/info/exclude。第二个优点是您可以有多个.gitignore文件,每个目录/子目录一个文件,用于特定于目录的忽略规则,这与.git/info/exclude不同。
因此.gitignore文件被控制了版本,并在存储库的所有克隆中显示。因此,在大型团队中,所有人都会忽略相同类型的文件(例如*.db, *.log);使用几个.gitignore文件可以实现更具体的忽略规则。
.git/info/exclude仅对单个克隆可用。它没有版本控制,因此一个人在自己的克隆中忽略的东西在另一个人的克隆中是不存在的。例如,如果有人使用Eclipse进行开发,那么该开发人员将.build文件夹添加到.git/info/exclude中可能是有意义的,因为其他开发人员可能不使用Eclipse。
一般来说,必须被普遍忽略的文件/ignore规则应该放在.gitignore中,否则,你只想在本地克隆上忽略的文件应该放在.git/info/exclude中。
仅提供我们的(真实世界)经验:当我们不得不在每个开发环境中定制一些配置文件时,我们开始使用.git/info/exclude,但仍然希望源代码保持在repo中,并可供其他开发人员使用。
这样,一旦克隆和修改了本地文件,就可以从提交中排除,而不会影响repo中的原始文件,但也不必在repo中被忽略。
使用.gitignore忽略特定于项目的规则。对于特定于您的环境的忽略规则,可以使用exclude或全局忽略文件。
例如,我的全局忽略文件忽略我使用的任何编辑器生成的临时文件—该规则特定于我的环境,对于同一项目的其他开发人员可能不同(可能他们使用不同的编辑器)。OTOH,我的项目。gitignore文件忽略了API键和构建工件之类的东西——这些是项目的,对项目中的每个人都应该是一样的。
这有用吗?