如何将git与$HOME/.gitconfig不同的配置文件一起使用?

如何将git与$HOME/.gitconfig不同的配置文件一起使用?,git,git-config,Git,Git Config,除了我的标准$HOME/.gitconfig,我还有一个可选的“全局”git配置文件,$HOME/.gitconfig2,我更喜欢在某些情况下使用它 我没有找到一个好方法告诉git使用$HOME/.gitconfig2而不是$HOME/.gitconfig。我能想到的最好方法是首先创建一个合适的命名符号链接,指向$HOME/.gitconfig2,如下所示: % mkdir $HOME/.githack % ln -s $HOME/.gitconfig2 $HOME/.githack/.gitc

除了我的标准
$HOME/.gitconfig
,我还有一个可选的“全局”git配置文件,
$HOME/.gitconfig2
,我更喜欢在某些情况下使用它

我没有找到一个好方法告诉
git
使用
$HOME/.gitconfig2
而不是
$HOME/.gitconfig
。我能想到的最好方法是首先创建一个合适的命名符号链接,指向
$HOME/.gitconfig2
,如下所示:

% mkdir $HOME/.githack
% ln -s $HOME/.gitconfig2 $HOME/.githack/.gitconfig
% HOME=$HOME/.githack git ...
…然后像这样调用
git

% mkdir $HOME/.githack
% ln -s $HOME/.gitconfig2 $HOME/.githack/.gitconfig
% HOME=$HOME/.githack git ...
…从而诱使
git
$HOME/.githack
下查找
.gitconfig

有更好的方法吗

另外,
git
没有提供命令行标志(甚至是专用环境标志)来覆盖用户的“全局”(相对于每个存储库)配置文件的位置,是否有一个有文件证明的原因



我的猜测是,这与“自举”有关;e、 例如,为了处理其命令行标志和/或环境变量,
git
首先需要读取用户的配置文件,因此,它不能使用这些标志或环境变量中的信息来确定配置文件的位置。

有几种方法可以从全局配置文件中包含配置文件:读取

如果您的“特定情况”可以是:“git存储库位于
$HOME/special/projects
目录下”,您可以使用:

[includeIf "gitdir:~/special/projects/"]
    path = ~/.gitconfig2

有几种方法可以从全局配置文件中包含配置文件:读取

如果您的“特定情况”可以是:“git存储库位于
$HOME/special/projects
目录下”,您可以使用:

[includeIf "gitdir:~/special/projects/"]
    path = ~/.gitconfig2