¿Es una buena idea firmar GPG con los viejos git commits?

9

Me acabo de dar cuenta de que olvidé decirle a git que use mi clave GPG. Había hecho una serie de confirmaciones sin firmarlas. ¿Debo volver y firmarlos?

No me refiero a si debo firmar etiquetas o no, pero decidí firmar confirmaciones ellos mismos. No creo que pueda pensar en ninguna razón para no hacerlo, aparte de tener un historial de git corrupto que puede o no ser lo que escribí. Confío en GitHub para no perder el tiempo con mi historial de git y soy el único autor de aproximadamente el 99% de mis proyectos, así que, dado eso, ¿debería hacerlo?

Encontré esta respuesta , así que ahora sé que es posible, pero filosóficamente hablando, ¿debería?

Alexis Evelyn
fuente

Respuestas:

12

Si los commits ya se han publicado, no debe reescribirlos para ningún propósito (excepto eliminar las filtraciones accidentales de datos), ya que esto cambiaría sus ID de commit. (Recuerde que la identificación de cada confirmación se basa en los hash SHA-1 de su contenido y su confirmación principal).

Eso significa que requeriría reescribir (y renunciar) todas las confirmaciones posteriores, y causaría problemas a cualquiera que ya haya obtenido alguna de esas confirmaciones.

Pero por la misma razón, no es necesario que firme esos compromisos antiguos explícitamente, al menos no con fines de integridad de datos. Dado que cada confirmación contiene identificadores de sus padres basados ​​en SHA-1, al verificar cualquier confirmación individual también se verificará implícitamente su historial completo a través de la cadena hash. No importa que la cadena sea un poco más larga o más corta.

Por otro lado, si no confía en SHA-1 para la seguridad, entonces debería considerar la firma de compromiso completamente inútil, ya que los hashes SHA-1 también hacen referencia al contenido del archivo de commits . Lo único que firma directamente (y no un hash del mismo) es el mensaje de confirmación.

usuario1686
fuente