如何指定自定义全局gitconfig路径?

如何指定自定义全局gitconfig路径?,git,configuration,Git,Configuration,我对Git有点纠结。我正在尝试执行git commit,但我需要能够在~/.gitconfig1和~/.gitconfig2之间切换。是否有命令行开关?或者无论如何,让git使用与/etc/gitconfig不同的gitconfig文件,~/.gitconfig和.git/config?我找到了一种方法来执行此操作-虽然不优雅,但确实有效-到目前为止,似乎是实现此操作的唯一方法 Git使用HOME路径确定.gitconfig的位置。我能做这样的事情: /home/marco/.silly/.gi

我对
Git
有点纠结。我正在尝试执行
git commit
,但我需要能够在
~/.gitconfig1
~/.gitconfig2
之间切换。是否有命令行开关?或者无论如何,让
git
使用与
/etc/gitconfig
不同的gitconfig文件,
~/.gitconfig
.git/config

我找到了一种方法来执行此操作-虽然不优雅,但确实有效-到目前为止,似乎是实现此操作的唯一方法

Git使用
HOME
路径确定
.gitconfig
的位置。我能做这样的事情:

/home/marco/.silly/.gitconfig
/home/marco/.stupid/.gitconfig
/home/marco/.gitconfig
当执行Git Commit(这是唯一需要
.gitconfig
的命令)时,我覆盖了主路径

HOME=/home/marco/.silly/ git commit -m "silly configuration"
然后,可以使用alias轻松地执行此操作

alias sillygit="HOME=/home/marco/.silly/ git"
sillygit commit -m "silly stuff"
您可以使用--git dir

git --git-dir /home/marco/silly/.git commit ...
Mario Ceppi可以使用
-c config=value
参数到
git
以稍微优雅的方式使用:

$ alias sillygit="git -c user.name=Silly -c user.email=silly@silly.org"
$ sillygit commit

当然,这假设您不介意将不同的配置键保留在
.bashrc
或类似文件中,而不是保留在
.gitconfig
中,并且它有打破shell完成的警告。

在一个repo中确实需要两个不同的配置吗?你能在每次回购中使用.git/config来获得你想要的吗?我想,如果你只有两种常见的设置可以在几十个回购协议中进行传播,那就不是很优雅了吗?@Jefromi是的,我有。这是我遇到的一个独特的情况,需要两个配置。另一个明显的选择是将全局别名
git commit-v2
(或更短的名称)改为
!导出GIT\u AUTHOR\u NAME=“Second NAME”;git提交
@Torek-更多git好处。这些开发者应该为他们的无能而感到骄傲……不错的黑客。我似乎找不到任何真正的方法来做到这一点——有一个GIT_CONFIG环境变量,但它只影响
GIT CONFIG
本身,就像它的
-f,--file
选项一样。--GIT dir设置正在编辑的存储库,提问者特别试图避免这样做。