【发布时间】:2013-07-10 10:27:00
【问题描述】:
我在系统范围的配置中有该文件(但它也可以包含在git config include.path="/path/to/defaultconfig" 中我想重置以前设置的一些值。
特别是,默认配置文件包含diff.external = git-diff-wrapper,我想为某些用户停用它
【问题讨论】:
标签: git git-config
我在系统范围的配置中有该文件(但它也可以包含在git config include.path="/path/to/defaultconfig" 中我想重置以前设置的一些值。
特别是,默认配置文件包含diff.external = git-diff-wrapper,我想为某些用户停用它
【问题讨论】:
标签: git git-config
如果是系统范围的配置,每个用户都可以覆盖他/她的全局和本地设置中的配置值。
但没有简单的方法可以“停用”较低配置文件中的设置。
即使将其设置为"" 通常也会产生意想不到的后果。那个very topic was discussed in April 2010。
例如,停用send-email 选项:
的确,在考虑了一下之后,使用 no value to unset 是一个可怕的、可怕的 hack。
git-send-email应该被纠正,不仅要检查配置或命令行选项是否有值,还要检查它是理智的(即非空的,或者如果我们说的话只是真实的smtpuser = "0"不是我们需要担心的支持)。
对于任何设置都是如此:diff.c#run_diff_cmd() 函数将尝试在 it has detected 和 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 系统安装路径(意味着不同的系统设置)。
【讨论】: