TIL: conditional git config
TIL: git supports conditional config
for a situation that requires multiple github accounts. you need to be able to toggle a number of config elements to make life happy.
git has support for conditional inclusion in the configuration files. if you
structure your config and directory structures appropriately you can use the
gitdir status to selectively include git configuration elements into the mix,
allowing you to toggle between one profile and another.
example
in the top level config (~/.gitconfig) i have the following
[include]
path = ~/.gitconfig-conditional~/.gitconfig-conditional has the directory specific inclusion logic.
[includeIf "gitdir:~/src/foo/"]
path = ~/.gitconfig-foo
[includeIf "gitdir:~/src/personal/"]
path = ~/.gitconfig-personalthe contents of the gitconfig-personal file has the individual config elements
that need to be toggled to interact with the repos accordingly.
[user]
name = steve ulrich
email = sulrich@botwerks.org
[github]
user = sulrich
[credential]
username = sulricha quick comment re: credential.username this is particularly important and
prevents you from having to tickle the git url in the individual repos to use
the correct github username. by default git doesn’t seem to have an awareness
of the username to associated with various profiles when using http repo urls.
this will result in multiple cached credentials within the git credential manager.