Mi piace molto il modo di Micah Henning nel suo articolo (vedi Setting Up Git Identities ) su questo argomento. Il fatto che applichi e forzi l'identità a ogni repository creato / clonato è un buon modo per non dimenticare di configurarlo ogni volta.
Configurazione git di base
Annulla l'impostazione della configurazione dell'utente corrente in git:
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --global --unset user.signingkey
Forza la configurazione dell'identità su ogni nuovo repository locale:
$ git config --global user.useConfigOnly true
Crea alias Git per il identity
comando, useremo in seguito:
$ 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)"; :'
Creazione di identità
Crea un'identità con GPG (usa gpg
o a gpg2
seconda di ciò che hai sul tuo sistema). Ripeti i passaggi successivi per ogni identità che desideri utilizzare.
Nota: [keyid]
ecco l' identificativo della chiave segreta creata. Esempio qui:
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 dopo sec rsa4096/
è l' identificativo della chiave.
$ gpg --full-gen-key
$ gpg --list-secret-keys --keyid-format LONG <youremail@domain>
$ gpg --armor --export [keyid]
Copia il blocco chiave pubblica e aggiungilo alle tue impostazioni GitHub / GitProviderOfChoice come chiave GPG.
Aggiungi identità a Git config. Ripeti anche questo per ogni identità che desideri aggiungere:
Nota: Qui uso gitlab
per chiamare la mia identità, ma dalla tua domanda può essere qualsiasi cosa, ad esempio: gitolite
o github
, work
ecc
$ git config --global user.gitlab.name "Your Name"
$ git config --global user.gitlab.email "youremail@domain"
$ git config --global user.gitlab.signingkey [keyid]
Configura l'identità per un repository
Se un nuovo repository non ha un'identità associata, apparirà un errore sul commit, ricordando di impostarlo.
*** Please tell me who you are.
## parts of message skipped ##
fatal: no email was given and auto-detection is disabled
Specifica l'identità che desideri su un nuovo repository:
$ git identity gitlab
Ora sei pronto per eseguire il commit con l' identità gitlab .