Définissez git config gpg.format ssh (ou openpgp, x509), user.signingkey et commit.gpgsign true ; vérifiez avec git log --show-signature ou git verify-commit. La vérification SSH exige un gpg.ssh.allowedSignersFile qui liste les principaux (principals) et leurs clés. Git signe l’objet commit lui-même, qui couvre l’arbre et les parents, mais pas les rebases ultérieurs, qui créent de nouveaux commits exigeant de nouvelles signatures.
GitHub et GitLab affichent des badges Verified lorsque la signature correspond à une clé enregistrée sur le compte de la personne qui a effectué le commit (les clés de signature SSH s’enregistrent séparément des clés d’authentification), et la protection des branches peut exiger des commits signés. gitsign signe les commits sans clé (keyless) avec Sigstore. Une signature prouve quelle clé a signé, pas que le code est bon, et les plateformes re-signent avec leurs propres clés les fusions effectuées dans l’interface web.