Обычно для работы используется корпоративный 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), команда вернет данные рабочего профиля.