2

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

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

4

1 回答 1

4

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

但是没有简单的方法可以“停用”较低配置文件中的设置。
即使将其设置为""通常也会产生意想不到的后果。2010 年 4 月讨论了这个话题。

例如,停用该send-email选项:

诚然,在考虑了这一点之后,使用 no value to unset 是一个可怕的、可怕的 hack。
git-send-email应该进行更正,不仅要检查配置或命令行选项是否有值,还要检查它是否正常(即非空,或者如果我们说这smtpuser = "0"不是我们需要担心支持的事情,则简单地说是真的)。

这对于任何设置都是正确的:如果函数检测到和值(偶数) ,diff.c#run_diff_cmd()它将尝试运行外部差异。diff.external""

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 系统安装路径(意味着不同的系统设置)。

于 2013-07-10T11:08:11.360 回答