Если точно знаем, что люди не будут специально творить пакости, и не вариант заводить разных Windows пользователей, то по идее можно попробовать следующим образом.
- каждый юзер должен иметь свой github аккаунт
- заводим на машине на каждого юзера свой ключ
- юзеры должны заимпортить свой ключ в настройки github
- создаем каждому пользователю свою рабочую папку (даже если они будут работать с одним и тем же репозиторием)
- создаем конфиги для каждой папки
Вот как, например, выглядят мои конфиги. Глобальный конфиг - для личных проектов. И есть еще отдельные конфиги на каждого работодателя. У меня все проекты лежат в ~/Projects, однако есть на каждое место работы подпапка ~/Projects/companyname, для которой использую кастомные настройки.
Глобальный конфиг
➜ ~ cat ~/.gitconfig
[user]
name = Mikhail Osher
email = mikhail.osher@gmail.com
[core]
excludesfile = /Users/miraage/.gitignore
autocrlf = false
filemode = false
pager = cat
editor = nano
[includeif "gitdir:/Users/miraage/Projects/companyname/"]
path = /Users/miraage/.gitconfig.companyname.inc
[branch]
autosetuprebase = always
[init]
defaultBranch = master
[oh-my-zsh]
hide-status = 1
Конфиг для папки companyname
➜ ~ cat ~/.gitconfig.companyname.inc
[user]
email = mikhail.osher@companyname.com
В Вашем случае, надо будет подменять IdentityFile для git+ssh подключения. Ответов в интернете на это вагон. Я бы в эти кастомные конфиги добавил
core.sshCommand, который уже будет использовать правильный IdentityFile для каждого юзера. Будет полезным почитать ответы и комментарии
https://superuser.com/questions/232373/how-to-tell...