Мне очень нравится способ Мики Хеннинга в его статье (см. Настройка идентификаторов Git ) на эту тему. Тот факт, что он применяет и принудительно устанавливает личность для каждого созданного / клонированного репозитория, является хорошим способом не забывать настраивать это каждый раз.
Базовая конфигурация git
Отменить текущую конфигурацию пользователя в git:
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --global --unset user.signingkey
Принудительно настроить идентификацию в каждом новом локальном репозитории:
$ git config --global user.useConfigOnly true
Создайте псевдоним Git для identity
команды, который мы будем использовать позже:
$ git config --global alias.identity '! git config user.name "$(git config user.$1.name)"; git config user.email "$(git config user.$1.email)"; git config user.signingkey "$(git config user.$1.signingkey)"; :'
Создание идентичности
Создайте личность с помощью GPG (используйте gpg
или в gpg2
зависимости от того, что у вас есть в вашей системе). Повторите следующие шаги для каждой личности, которую вы хотите использовать.
Примечание: [keyid]
вот идентификатор созданного секретного ключа. Пример здесь:
sec rsa4096/8A5C011E4CE081A5 2020-06-09 [SC] [expires: 2021-06-09]
CCC470AE787C057557F421488C4C951E4CE081A5
uid [ultimate] Your Name <youremail@domain>
ssb rsa4096/1EA965889861C1C0 2020-06-09 [E] [expires: 2021-06-09]
8A5C011E4CE081A5
Часть после того, как sec rsa4096/
это идентификатор ключа.
$ gpg --full-gen-key
$ gpg --list-secret-keys --keyid-format LONG <youremail@domain>
$ gpg --armor --export [keyid]
Скопируйте блок открытого ключа и добавьте его в настройки GitHub / GitProviderOfChoice в качестве ключа GPG.
Добавьте личность в конфигурацию Git. Также повторите это для каждого идентификатора, который вы хотите добавить:
Примечание: здесь я использую gitlab
для обозначения своей личности, но, судя по вашему вопросу, это может быть что угодно, например: gitolite
или github
, work
и т. Д.
$ git config --global user.gitlab.name "Your Name"
$ git config --global user.gitlab.email "youremail@domain"
$ git config --global user.gitlab.signingkey [keyid]
Установить личность для репозитория
Если новое репо не связано с идентификатором, при фиксации появится сообщение об ошибке, напоминающее вам установить его.
*** Please tell me who you are.
## parts of message skipped ##
fatal: no email was given and auto-detection is disabled
Укажите идентификатор, который вы хотите использовать в новом репозитории:
$ git identity gitlab
Теперь вы готовы к фиксации с идентификатором gitlab .