Eu gosto muito da maneira de Micah Henning em seu artigo (consulte Configurando identidades do Git ) sobre esse assunto. O fato de ele aplicar e forçar a identidade a cada repositório criado / clonado é uma boa maneira de não se esquecer de configurar isso a cada vez.
Configuração básica do git
Desconfigure a configuração do usuário atual no git:
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --global --unset user.signingkey
Forçar configuração de identidade em cada novo repositório local:
$ git config --global user.useConfigOnly true
Crie um alias Git para o identitycomando, que usaremos mais tarde:
$ 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)"; :'
Criação de identidades
Crie uma identidade com GPG (use gpgou gpg2dependendo do que você tem em seu sistema). Repita as próximas etapas para cada identidade que deseja usar.
Nota: [keyid]aqui está o identificador da chave secreta criada. Exemplo aqui:
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]
A 8A5C011E4CE081A5parte seguinte sec rsa4096/é o identificador da chave.
$ gpg --full-gen-key
$ gpg --list-secret-keys --keyid-format LONG <youremail@domain>
$ gpg --armor --export [keyid]
Copie o bloco de chave pública e adicione-o às configurações do GitHub / GitProviderOfChoice como uma chave GPG.
Adicione identidade à configuração do Git. Repita também para cada identidade que deseja adicionar:
Nota: aqui eu uso gitlabpara nomear a minha identidade, mas a partir de sua pergunta pode ser qualquer coisa, ex: gitoliteou github, worketc.
$ git config --global user.gitlab.name "Your Name"
$ git config --global user.gitlab.email "youremail@domain"
$ git config --global user.gitlab.signingkey [keyid]
Configurar identidade para um repositório
Se um novo repo não tiver identidade associada, um erro aparecerá no commit, lembrando você de configurá-lo.
*** Please tell me who you are.
## parts of message skipped ##
fatal: no email was given and auto-detection is disabled
Especifique a identidade que você deseja em um novo repositório:
$ git identity gitlab
Agora você está pronto para se comprometer com a identidade gitlab .