Автор: black1277
В домашней директории есть три папки:
~/ProjectHome/~/ProjectWork/~/ProjectOther/
В каждой нужно работать от своего пользователя:
userHomeuserWorkuserOther
Чтобы работать в каждом проекте без дополнительных переключений, нужно сделать следующее:
Откройте файл ~/.gitconfig и добавьте в него:
# файл '.gitconfig'
[includeIf "gitdir:~/ProjectHome/"]
path = ~/.gitconfig-home
[includeIf "gitdir:~/ProjectWork/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/ProjectOther/"]
path = ~/.gitconfig-otherСоздайте в домашней директории три файла:
~/.gitconfig-home~/.gitconfig-work~/.gitconfig-other
Пример содержимого для ~/.gitconfig-home:
# файл '.gitconfig-home'
[user]
name = userHome
email = [email protected]
[core]
sshCommand = "ssh -i ~/.ssh/id_userHome_ed25519"Аналогично создайте .gitconfig-work и .gitconfig-other, указав соответствующего пользователя и ключ.
⚠️ При этом из основного.gitconfigнужно удалить секции[user]и[core.sshCommand], чтобы не было конфликтов.
git remote set-url origin [email protected]:userHome/ProjectHome.gitgit remote set-url origin [email protected]:userWork/ProjectWork.gitgit remote set-url origin [email protected]:userOther/ProjectOther.git💡
ProjectHome.git,ProjectWork.git,ProjectOther.git— это просто примеры названий репозиториев, они могут быть любыми.
📌 Важно: эти команды нужно выполнять для каждого проекта отдельно, а не один раз для всей папки.
В директории ~/.ssh/ должны находиться три приватных ключа, которые вы сгенерировали для каждого пользователя.
Например:
id_userHome_ed25519id_userWork_ed25519id_userOther_ed25519
Убедитесь, что имя ключа соответствует указанному в параметре sshCommand внутри соответствующего .gitconfig-*.
Теперь можно:
- Открыть в редакторе любой проект из этих папок.
- Работать, коммитить и пушить — без ручного переключения пользователя или ключа.
- Открыть сразу несколько проектов из разных папок — всё будет работать корректно.
Можно добавить и больше папок с пользователями — принцип остаётся тем же.