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 identity
comando, 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 gpg
ou gpg2
dependendo 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 8A5C011E4CE081A5
parte 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 gitlab
para nomear a minha identidade, mas a partir de sua pergunta pode ser qualquer coisa, ex: gitolite
ou github
, work
etc.
$ 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 .