Обычно для работы используется корпоративный Git-аккаунт с рабочей электронной почтой, а для личных проектов — персональный.
В этом руководстве показано, как разделить эти профили, чтобы рабочие проекты подписывались рабочими данными, а личные — личными.
Я использую следующую структуру каталогов:
. # Корень диска (d:)
└── projects # Каталог с проектами
└── chernyavsky # Персональные проекты
└── company1.com # Рабочие проекты компании "Рога и копыта"
└── company2.kz # Рабочие проекты компании "Грива и хвост"Git использует два уровня конфигурации: глобальный и локальный.
Локальный .gitconfig находится в папке конкретного проекта, глобальный — в домашней директории пользователя Windows.
Чтобы посмотреть все текущие настройки и откуда они взяты, используйте:
git config --list --show-originНас интересует глобальный .gitconfig, обычно расположенный по пути:
C:\Users\<Username>\.gitconfig
В нём задаются имя пользователя и email по умолчанию:
git config --global user.name "Alexei Chernyavsky"
git config --global user.email example@gmail.comЭти команды нужно выполнить сразу после установки Git — иначе не сможем сделать коммит.
В результате в .gitconfig появится:
[user]
name = Alexei Chernyavsky
email = example@gmail.comОбычно здесь указывается личный аккаунт.
Чтобы добавить рабочий профиль, создайте рядом с глобальным конфигом файл
.gitconfig-company1_com со следующим содержимым:
[user]
name = Alexei Chernyavsky
email = a.chernyavsky@company1.com
signingkey = A4978EBEA94B8EA9DF5CC748131DC8B25EC79DF2Dесли вы используете GPG-подпись коммитов — укажите
signingkey.
Теперь подключим его в глобальном .gitconfig, добавив условное включение профиля для нужной директории:
[user]
name = Alexei Chernyavsky
email = example@gmail.com
[includeIf "gitdir/i:d:/projects/company1.com/**"]
path = .gitconfig-company1_comПосле этого в проектах внутри d:/projects/company1.com/ будут использоваться рабочие имя и email.
Проверьте:
git config --get user.emailЕсли находитесь в каталоге с рабочими проектами, где инициализирован репозиторий (т.е. в ней есть каталог .git), команда вернет данные рабочего профиля.