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.