我与Git
有点混淆。我正在尝试执行git commit
,但我需要能够在~/.gitconfig1
和~/.gitconfig2
之间切换是否有命令行切换 - 或者无论如何让Git
使用不同的gitconfig文件然后在/etc/gitconfig
,~/.gitconfig
和.git/config
找到的文件?
答案 0 :(得分:15)
我找到了一种方法来执行此操作 - 它并不优雅,但确实有效 - 而且到目前为止似乎是实现此功能的唯一方法。
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 sillygit="HOME=/home/marco/.silly/ git"
sillygit commit -m "silly stuff"
答案 1 :(得分:4)
-c config=value
的{{1}}参数,可以稍微优雅地使用Mario Ceppi的alias approach:
git
这当然假设您不介意在$ alias sillygit="git -c user.name=Silly -c user.email=silly@silly.org"
$ sillygit commit
之类的内容中保留不同的配置密钥,而不是在.bashrc
中,并且它有一个打破shell完成的警告。 / p>
答案 2 :(得分:0)
man git-config
告诉我使用-f
标志来传递配置文件。但是它似乎不能与git config
之外的其他命令一起使用,所以我认为你必须在提交之前调用它,使用别名轻松完成。
答案 3 :(得分:-3)
您可以使用--git-dir
git --git-dir /home/marco/silly/.git commit ...