Confère le wiki configuration de git pour la mise en place du paramétrage nécessaire à la signature. Pour signer les travaux git utilise gpg ou gpg2.
Pour activer la signature systématique des commits, ici l'option de portée --global permet de le définir pour tous les dépôts de l’utilisateur courant:
git config --global commit.gpgsign true
Si le client git n'est pas configuré pour signer systématiquement les commits, on peut signaler ponctuellement quel commit signer via l'argument -S:
git commit -S -m "Modifications apportées"
Les tags peuvent également être signés, pour cela utiliser l'argument -s
git tag alpha-0.3 -s -m 'version alpha 0.3'
Pour vérifier un tag signé utiliser l'argument -v:
git tag -v alpha-0.3
Par défaut les informations de signature ne sont pas systématiquement affichées.
Il est possible via la commande git log d'ajouter l' option --show-signature affichant les informations de signature:
git log --show-signature
La commande git show permet d'afficher le commit et les informations de signature via l'option --show-signature:
# En utilisant un tag git show master --show-signature # En utilisant le SHA de l' objet git show 7554255 --show-signature
Pour vérifier un tag signé, utiliser l'option -v. La vérification s'appuie sur GPG, le trousseau de l'utilisateur doit contenir la clé publique du signataire pour que l' opération puisse aboutir.
git tag -v alpha-1.1
A partir de la version 1.8.3 les commandes git merge et git pull peuvent vérifier et rejeter des commits sans signature appartenant à son réseau de confiance en utilisant l'option --verify-signatures.
git merge --verify-signatures non-verify-branch
Le merge est une forme de commit, on peut donc le signer via l'option -S:
git merge --verify-signatures -S signed-branch