覆盖git config - .gitconfig用户文件中的系统(git config --global)

时间:2013-07-10 10:27:00

标签: git git-config

我在系统范围内配置了该文件(但它也可以包含在git config include.path="/path/to/defaultconfig"中我想重置之前设置的一些值。

特别是,默认配置文件包含diff.external = git-diff-wrapper,我想为某些用户停用它

1 个答案:

答案 0 :(得分:3)

如果是系统范围的配置,则每个用户都可以在他/她的全局和本地设置中覆盖配置值。

但是没有简单的方法来“停用”较低配置文件中的设置 即使将其设置为""通常也会产生意想不到的后果。那very topic was discussed in April 2010

例如,停用send-email选项:

  

没错,经过深思熟虑后,没有任何价值可以解决,这是一个可怕的,可怕的黑客攻击   git-send-email应该更正,不仅要检查配置或命令行选项是否有值,还要确保它是理智的(即非空,或者只是如果我们说是真的   smtpuser = "0"不是我们需要担心支持的事情。

对于任何设置都是如此:如果diff.c#run_diff_cmd()diff.external值(甚至是""),it has detected函数将尝试运行外部差异。

if (!strcmp(var, "diff.external"))
  return git_config_string(&external_diff_cmd_cfg, var, value);

导致:

if (pgm) {
  run_external_diff(pgm, name, other, one, two, xfrm_msg,
  complete_rewrite);
  return;
}

因此除了确保这些用户引用不同的git系统安装路径(意味着不同的系统设置)之外,没有简单的方法来阻止系统范围的外部差异。