Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I specify custom global gitconfig path?

I'm in a bit of a bind with Git. I'm trying to execute git commit but I need to be able to swtich between ~/.gitconfig1 and ~/.gitconfig2 Is there a command line switch - or anyway to have Git use a different gitconfig file then the ones found at /etc/gitconfig, ~/.gitconfig and .git/config?

like image 959
Marco Ceppi Avatar asked Aug 28 '10 20:08

Marco Ceppi


2 Answers

I found a way to execute this - it wasn't elegant but it did work - and so far seems to be the only way to get this to work.

Git uses the HOME path to determine where .gitconfig is. I was able to perform something like this:

/home/marco/.silly/.gitconfig
/home/marco/.stupid/.gitconfig
/home/marco/.gitconfig

And when executing Git Commit (which is the only command that requires the .gitconfig) I override the home path.

HOME=/home/marco/.silly/ git commit -m "silly configuration"

You can then use alias to do this easily

alias sillygit="HOME=/home/marco/.silly/ git"
sillygit commit -m "silly stuff"
like image 70
Marco Ceppi Avatar answered Nov 08 '22 00:11

Marco Ceppi


Mario Ceppi's alias approach can be used in a slightly more elegant way using the -c config=value argument to git:

$ alias sillygit="git -c user.name=Silly -c [email protected]"
$ sillygit commit

This of course assumes you don't mind keeping the differing config keys in your .bashrc or the like instead of in your .gitconfig, and it has the caveat of breaking shell completion.

like image 40
Emil Lundberg Avatar answered Nov 08 '22 00:11

Emil Lundberg