Me gusta mucho la forma de Micah Henning en su artículo (ver Configuración de identidades de Git ) sobre este tema. El hecho de que aplique y fuerce la identidad a cada repositorio creado / clonado es una buena forma de no olvidar configurar esto cada vez.
Configuración básica de git
Anule la configuración del usuario actual en git:
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --global --unset user.signingkey
Forzar la configuración de identidad en cada nuevo repositorio local:
$ git config --global user.useConfigOnly true
Cree un alias de Git para el identity
comando, lo usaremos más adelante:
$ 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)"; :'
Creación de identidades
Cree una identidad con GPG (use gpg
o gpg2
dependiendo de lo que tenga en su sistema). Repita los siguientes pasos para cada identidad que desee utilizar.
Nota: [keyid]
aquí está el identificador de la clave secreta creada. Ejemplo aquí:
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]
La 8A5C011E4CE081A5
parte posterior sec rsa4096/
es el identificador de la clave.
$ gpg --full-gen-key
$ gpg --list-secret-keys --keyid-format LONG <youremail@domain>
$ gpg --armor --export [keyid]
Copie el bloque de clave pública y agréguelo a su configuración de GitHub / GitProviderOfChoice como una clave GPG.
Agregue identidad a la configuración de Git. También repita esto para cada identidad que desee agregar:
Nota: aquí utilizo gitlab
para nombrar mi identidad, pero a partir de su pregunta puede ser cualquier cosa, por ejemplo , gitolite
o , etc.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]
Configurar identidad para un repositorio
Si un nuevo repositorio no tiene una identidad asociada, aparecerá un error en la confirmación, recordándole que lo configure.
*** Please tell me who you are.
## parts of message skipped ##
fatal: no email was given and auto-detection is disabled
Especifique la identidad que desea en un nuevo repositorio:
$ git identity gitlab
Ahora está listo para comprometerse con la identidad de gitlab .