É uma boa ideia assinar com GPG old git commits?

10

Acabei de perceber que esqueci de dizer ao git para usar minha chave GPG. Eu fiz vários commits sem assiná-los. Devo voltar e assiná-los?

Não estou me referindo a se devo ou não assinar tags, mas decidi assinar os próprios commits. Eu não acredito que eu possa pensar em qualquer razão para não, além de ter uma história git corrompida que pode ou não ser o que eu escrevi. Eu confio no GitHub para não mexer com o meu histórico de git e eu sou o único autor de cerca de 99% dos meus projetos, então, dado isso, devo fazê-lo?

Eu encontrei esta resposta , então eu sei agora que é possível, mas filosoficamente falando, eu deveria?

    
por SenorContento 11.11.2016 / 19:12

1 resposta

12

Se os commits já foram publicados, você não deve reescrevê-los para qualquer propósito (exceto remover vazamentos acidentais de dados), já que isso mudaria seus IDs de commit. (Lembre-se que cada ID de commit é baseado em hashes SHA-1 de seu conteúdo e seu commit pai).

Isso significa que seria necessário reescrever (e renunciar) todos os commits subsequentes, e causaria problemas para qualquer um que já tenha obtido qualquer um desses commits.

Mas pelo mesmo motivo, você não precisa assinar esses commits explicitamente, pelo menos não para fins de integridade de dados. Como cada commit contém IDs baseados em SHA-1 de seus pais, a verificação de qualquer commit individual também verificará implicitamente todo o seu histórico através da cadeia de hash. Não importa que a cadeia seja um pouco mais longa ou mais curta.

Por outro lado, se você não confiar no SHA-1 para segurança, considere a assinatura do commit totalmente inútil, pois o conteúdo do arquivo do commits também é referido pelos hashes SHA-1 . A única coisa que você assina diretamente (e não um hash dela) é a mensagem de commit.

    
por 11.11.2016 / 21:09

Tags