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

Par*_*rag 109 git gitignore

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

它们都位于存储库/项目的级别,所以它们如何区别以及何时使用.git/info/exclude

mu *_*u 無 151

优点.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

  • @ShimmyWeitzhandler,sln 文件是否已在您的存储库中?那么排除或 .ignore 将不会阻止 git 跟踪它的更改。尝试以下操作之一: `git rm --cached <path-name>` 将从存储库中删除它,但将其保留在本地。`git update-index --skip-worktree <path-name>` 将忽略对文件的更改,但将其保留在存储库中。出于好奇:为什么要排除 sln 文件?它是 .Net 解决方案的重要组成部分,对吧? (2认同)

LeG*_*GEC 26

谷歌搜索:排除文件的3种方法

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

3. 实际上需要在您的计算机上设置配置:

git config --global core.excludesfile '~/.gitignore'
Run Code Online (Sandbox Code Playgroud)

  • (扰乱:第三种方式是通过〜/ .gitconfig中的设置忽略计算机全局) (13认同)
  • 是的,我也读过这个,但想要获得更实际(现实世界)的观点:-) (2认同)

小智 11

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

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


Mar*_*ser 8

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

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

这有帮助吗?