Apakah itu ide yang baik untuk GPG menandatangani komitmen lama git?


9

Saya baru menyadari bahwa saya lupa memberi tahu git untuk menggunakan kunci GPG saya. Saya telah membuat sejumlah komitmen tanpa menandatanganinya. Haruskah saya kembali dan menandatanganinya?

Saya tidak mengacu pada apakah saya harus menandatangani tag atau tidak, tetapi saya memutuskan untuk menandatangani sendiri komitmen. Saya tidak percaya saya bisa memikirkan alasan untuk tidak melakukannya, selain memiliki sejarah git yang rusak yang mungkin atau mungkin tidak seperti yang saya tulis. Saya percaya GitHub tidak main-main dengan sejarah git saya dan saya adalah satu-satunya penulis sekitar 99% dari proyek saya, jadi mengingat itu, haruskah saya melakukannya?

Saya menemukan jawaban ini , jadi saya tahu sekarang ini mungkin, tetapi secara filosofis, haruskah saya?

Jawaban:


12

Jika komit telah dipublikasikan, Anda tidak boleh menulis ulang untuk tujuan apa pun (kecuali menghapus kebocoran data yang tidak disengaja), karena ini akan mengubah ID komit mereka. (Ingat bahwa setiap ID komit didasarkan pada hash SHA-1 dari kontennya dan komit induknya.)

Itu berarti akan membutuhkan penulisan ulang (dan mengundurkan diri) semua komitmen selanjutnya, dan akan menimbulkan masalah bagi siapa saja yang telah mengambil komitmen tersebut.

Tetapi untuk alasan yang sama, Anda tidak perlu menandatangani komitmen lama secara eksplisit, setidaknya tidak untuk tujuan integritas data. Karena setiap komit berisi ID berbasis SHA-1 dari orang tuanya, memverifikasi setiap komit juga akan secara implisit memverifikasi seluruh riwayatnya melalui rantai hash. Tidak masalah bahwa rantai sedikit lebih panjang atau lebih pendek.

Di sisi lain, jika Anda tidak mempercayai SHA-1 untuk keamanan, maka Anda harus menganggap komit penandatanganan sama sekali tidak berguna, karena konten file komit juga dirujuk oleh hash SHA-1. Satu-satunya hal yang Anda tanda tangani secara langsung (dan bukan hash) adalah pesan commit.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.