El campo de autor de un commit (see El modelo de objetos) es texto
libre: cualquiera puede configurar git config user.name y
user.email con el nombre de otra persona. Las firmas
criptográficas permiten verificar que un commit o un tag realmente
fue creado por quien dice ser su autor.
git config --global user.signingkey CLAVE_GPG git config --global commit.gpgsign true git commit -S -m "mensaje"
Con commit.gpgsign true, todos los commits nuevos se firman
automáticamente sin necesidad de la opción -S en cada
llamada.
git tag -s v2.1.0 -m "Versión 2.1.0"
A diferencia de un tag ligero (un simple puntero, see El modelo de objetos), un tag firmado incluye la firma dentro del propio objeto tag, por lo que persiste junto con el repositorio y puede verificarse en cualquier copia clonada.
git log --show-signatureMuestra el estado de la firma (válida, inválida, o ausente) junto a cada commit.
git verify-commit <hash>Verifica la firma de un commit específico.
git verify-tag nombre-del-tagVerifica la firma de un tag.
Una firma válida confirma que quien creó el commit tenía acceso a la clave privada correspondiente en el momento de firmarlo; no garantiza que el contenido del commit sea correcto ni que haya sido revisado por nadie. Sirve para verificar procedencia, no calidad. Es especialmente relevante en proyectos que aceptan contribuciones externas y quieren poder confirmar, más adelante, que un commit determinado realmente provino de quien figura como autor.