J'aime beaucoup la manière de Micah Henning dans son article (voir Configurer les identités Git ) sur ce sujet. Le fait qu'il applique et force l'identité à chaque référentiel créé / cloné est un bon moyen de ne pas oublier de le configurer à chaque fois.
Configuration de base de git
Annuler la configuration actuelle de l'utilisateur dans git:
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --global --unset user.signingkey
Forcer la configuration de l'identité sur chaque nouveau référentiel local:
$ git config --global user.useConfigOnly true
Créez un alias Git pour la identity
commande, nous utiliserons plus tard:
$ 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)"; :'
Création d'identités
Créez une identité avec GPG (utilisez gpg
ou en gpg2
fonction de ce que vous avez sur votre système). Répétez les étapes suivantes pour chaque identité que vous souhaitez utiliser.
Remarque: [keyid]
voici l' identifiant de la clé secrète créée. Exemple ici:
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
partie après sec rsa4096/
est l' identifiant de la clé.
$ gpg --full-gen-key
$ gpg --list-secret-keys --keyid-format LONG <youremail@domain>
$ gpg --armor --export [keyid]
Copiez le bloc de clé publique et ajoutez-le à vos paramètres GitHub / GitProviderOfChoice en tant que clé GPG.
Ajoutez une identité à la configuration Git. Répétez également cette opération pour chaque identité que vous souhaitez ajouter:
Note: J'utilise ici gitlab
pour nommer mon identité, mais de votre question , il peut être quelque chose, 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]
Configurer l'identité d'un référentiel
Si un nouveau dépôt n'a aucune identité associée, une erreur apparaîtra lors de la validation, vous rappelant de la définir.
*** Please tell me who you are.
## parts of message skipped ##
fatal: no email was given and auto-detection is disabled
Spécifiez l'identité que vous souhaitez sur un nouveau référentiel:
$ git identity gitlab
Vous êtes maintenant prêt à vous engager avec l' identité gitlab .