Мне очень нравится способ Мики Хеннинга в его статье (см. Настройка идентификаторов 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.
person
sgy
schedule
13.06.2020