Наверняка многие сталкивались с ситуацией использования нескольких git конфигураций. Например, одна рабочая, а вторая — личная. Раньше я использовал мини-функцию в .zshrc, которая мне клонировала репозиторий и задавала необходимые для этого репозитория user.name и user.email в локальный gitconfig. Вариант хоть и рабочий, но не очень удобный. Не всегда удобно через консоль, иногда вам необходимо более 2 учетных записей. Ответ, как всегда, находится в документации, которую мы часто читаем поверхностно.
Создаем глобальный .gitconfig для пользователя:
~/.gitconfig
# Описываем настройки по-умолчанию
[core]
autocrlf = input
safecrlf = warn
# Удобно настроить единый gitignore для всех репозиториев
excludesfile = ~/.global-gitignore
# Подключаем дополнительные .gitconfig в зависимости от url репозитория
[includeIf "hasconfig:remote.*.url:ssh://git@bitbucket.mywork.ru/**"]
path = ~/.gitconfig-work
[includeIf "hasconfig:remote.*.url:git@git.sandzhaj.space:*/*"]
path = ~/.gitconfig-gitlab-personal
[includeIf "hasconfig:remote.*.url:git@github.com:*/*"]
path = ~/.gitconfig-github-personal
~/.gitconfig-work
[user]
name = Иван Петров
email = ipetrov@mywork.ru
~/.gitconfig-gitlab-personal
[user]
name = Sandzhaj
email = personal@sandzhaj.space
~/.gitconfig-gitlab-personal
[user]
name = Sandzhaj
email = another_personal@gmail.com
Таким образом, независимо от того где и как у нас лежат репозитории, в зависимости от их url у нас будет к коммитам прикрепляться нужный user.name и user.email.
Другие опции можно посмотреть в официальной git документации