如何让Git暂时忽略~/.gitconfig文件?

20

如何让 Git 命令暂时忽略我的 ~/.gitconfig

我可以设置 GIT_CONFIG=/dev/null 来使 git config 忽略 ~/.gitconfig,但这不能影响其他 Git 命令。

我可以隐藏我的 ~/.gitconfig,例如 mv ~/.gitconfig{,.hidden},但这很麻烦,因为我以后还需要将其移回,并且会对 Git 全局产生影响。

使用场景

  • 脚本化 Git:限制默认设置以实现可移植性。
  • 调试 Git:限制默认设置以实现可重复性。

1
你为什么想要这样做?你的使用场景是什么? - Sigi
@Sigi:我现在正在调试Git, 过去我在编写Git脚本时也需要这个。 - ntc2
1
令人惊讶的是,似乎没有一个选项能够使 git 忽略配置文件。也许你应该向 Git 维护者提交请求,以包括这种可能性。 - Sigi
在这里询问:https://groups.google.com/forum/#!topic/git-users/1ehWsItL8vE 不确定是否是正确的地方;顺便说一下,该功能应该是:覆盖位置,而不是忽略它;覆盖更为强大,包括通过指定空文件来忽略(例如)。建议的命令是:git --gitconfigfile=~/.gitconfig_temp diff - timotheecour
我现在也在这里提问了:https://public-inbox.org/git/CANri+Ey71QbWxNH+RhMfYuUSDEpYtv28ushUhK8Tt0xWUAU9iw@mail.gmail.com/T/#u - timotheecour
1个回答

11

我找到了一个不错的解决方法:如果Git找不到~/.gitconfig文件,它将无法使用它:

HOME= git <args>

这里的HOME=实际上是在命令git <args>执行期间取消了HOME的设置。

更为谨慎但较长的版本包括:

HOME=/dev/null git <args>

并且

(unset HOME; git <args>)

更准确地说,它将“HOME”设置为空字符串。 - Keith Thompson
1
这可能会破坏1.8.4之前的git版本;请参阅git源代码树中的Documentation/RelNotes/1.8.4.txt。而git配置文件(例如<repo>/.git/config)可以引用$HOME~ - Keith Thompson
@KeithThompson:我猜你指的是发行说明中的“When $HOME is misconfigured to point at an unreadable directory, we used to complain and die. Loosen the check.”。谢谢! - ntc2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接