如何指定自定义全局gitconfig路径?
我与Git
有点结合。我试图执行git commit
但我需要能够~/.gitconfig1
和~/.gitconfig2
之间等维护到是否有一个命令行开关 - 或反正有Git
使用不同的gitconfig文件,然后在/etc/gitconfig
,~/.gitconfig
和.git/config
发现的呢?如何指定自定义全局gitconfig路径?
我找到了一种方法来执行此操作 - 虽然不够高雅,但确实奏效 - 迄今为止,似乎是实现这一目标的唯一方法。
Git使用HOME
路径来确定.gitconfig
是哪里。我是能够执行这样的事情:
/home/marco/.silly/.gitconfig
/home/marco/.stupid/.gitconfig
/home/marco/.gitconfig
和执行git的承诺(这是需要.gitconfig
唯一的命令),当我推翻了回家路。
HOME=/home/marco/.silly/ git commit -m "silly configuration"
然后,您可以使用别名来做到这一点很容易
alias sillygit="HOME=/home/marco/.silly/ git"
sillygit commit -m "silly stuff"
尼斯破解。我似乎无法找到任何真正的方法来做到这一点 - 有一个GIT_CONFIG环境变量,但它只影响'git config'本身,就像它的'-f, - file'选项一样。 – Cascabel 2010-08-29 15:38:28
man git-config
告诉我使用-f
标志来传递配置文件。然而,它似乎不适用于git config
以外的其他命令,所以我认为您必须在提交之前调用它,轻松完成别名。
这只是告诉特定的git-config调用什么文件来读取或写入 - 它不会影响任何其他命令,据我所知。 – Cascabel 2010-08-29 04:23:01
正确 - 这不起作用。 – 2010-08-29 15:03:49
可以使用--git-DIR
git --git-dir /home/marco/silly/.git commit ...
--git-dir设置正在编辑的存储库,这是提问者特别试图避免的。 – 2012-10-28 12:40:32
马里奥Ceppi的alias approach可以在一个稍微更优雅的方式来使用使用-c config=value
参数到git
:
$ alias sillygit="git -c user.name=Silly -c [email protected]"
$ sillygit commit
这当然假设你不介意在你的.bashrc
或类似的地方保留不同的配置密钥,而不是你的.gitconfig
,并且它有破解shell完成的警告。
你真的需要两个不同的配置,而在一个回购?你可以使用每个回购的.git/config来获得你想要的?如果你只有两种常见的设置来传播几十个回购券,我想这不是很优雅吗? – Cascabel 2010-08-29 04:24:41
@Jefromi是的,我愿意。这是一个独特的情况,我遇到了需要两个配置的地方 – 2010-08-29 15:03:32
另一个明显的选择是将全局别名'git commit-v2'(或更短的)替换为'!export GIT_AUTHOR_NAME =“Second name”; git commit'。 – Cascabel 2010-08-29 15:43:08