Делал подобное. Все рабочие проекты были в определённой папке, личные рандомно. Что-то типа того:
- /Projects
- <company-name>
- work-project-1
- work-project-2
- personal-project-1
- personal-project-2
Дальше идём в gitconfig и добавляем немного магии
// ~/.gitconfig
[includeIf "gitdir:/Projects/<company-name>/"]
path = ~/.gitconfig-company-name
// ~/.gitconfig-company-name
[user]
email = identifier@companyname.com
[core]
sshCommand = "ssh -i ~/.ssh/id_rsa_company_name.pub"
Скорее всего, надо будет ещё поплясать с бубном вокруг core.sshCommand, но как-то так должно сработать.