Skip to content

Instantly share code, notes, and snippets.

@black1277
Created April 19, 2025 10:52
Show Gist options
  • Select an option

  • Save black1277/2e67d4f9191705c349da79d13bf0e1cf to your computer and use it in GitHub Desktop.

Select an option

Save black1277/2e67d4f9191705c349da79d13bf0e1cf to your computer and use it in GitHub Desktop.
Как настроить .gitconfig для работы в нескольких проектах от разных пользователей.

⚙️ Настройка разных пользователей Git для разных проектов

Автор: black1277

В домашней директории есть три папки:

  • ~/ProjectHome/
  • ~/ProjectWork/
  • ~/ProjectOther/

В каждой нужно работать от своего пользователя:

  • userHome
  • userWork
  • userOther

Чтобы работать в каждом проекте без дополнительных переключений, нужно сделать следующее:


1. Добавить настройки в .gitconfig

Откройте файл ~/.gitconfig и добавьте в него:

# файл '.gitconfig'
[includeIf "gitdir:~/ProjectHome/"]
  path = ~/.gitconfig-home
[includeIf "gitdir:~/ProjectWork/"]
  path = ~/.gitconfig-work
[includeIf "gitdir:~/ProjectOther/"]
  path = ~/.gitconfig-other

2. Создать отдельные конфиги для каждого пользователя

Создайте в домашней директории три файла:

  • ~/.gitconfig-home
  • ~/.gitconfig-work
  • ~/.gitconfig-other

3. Прописать пользователя и SSH-ключ в каждом конфиге

Пример содержимого для ~/.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], чтобы не было конфликтов.


4. Указать правильный remote для каждого проекта

Для проектов в ~/ProjectHome/:

git remote set-url origin [email protected]:userHome/ProjectHome.git

Для проектов в ~/ProjectWork/:

git remote set-url origin [email protected]:userWork/ProjectWork.git

Для проектов в ~/ProjectOther/:

git remote set-url origin [email protected]:userOther/ProjectOther.git

💡 ProjectHome.git, ProjectWork.git, ProjectOther.git — это просто примеры названий репозиториев, они могут быть любыми.

📌 Важно: эти команды нужно выполнять для каждого проекта отдельно, а не один раз для всей папки.


5. Разместить SSH-ключи

В директории ~/.ssh/ должны находиться три приватных ключа, которые вы сгенерировали для каждого пользователя.

Например:

  • id_userHome_ed25519
  • id_userWork_ed25519
  • id_userOther_ed25519

Убедитесь, что имя ключа соответствует указанному в параметре sshCommand внутри соответствующего .gitconfig-*.


✅ Результат

Теперь можно:

  • Открыть в редакторе любой проект из этих папок.
  • Работать, коммитить и пушить — без ручного переключения пользователя или ключа.
  • Открыть сразу несколько проектов из разных папок — всё будет работать корректно.

Можно добавить и больше папок с пользователями — принцип остаётся тем же.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment