Có phải là một ý tưởng tốt để GPG ký cam kết git cũ?


9

Tôi chỉ nhận ra rằng tôi đã quên nói với git sử dụng khóa GPG của mình. Tôi đã thực hiện một số cam kết mà không cần ký chúng. Tôi có nên quay lại và ký chúng?

Tôi không đề cập đến việc tôi có nên ký thẻ hay không, nhưng tôi quyết định tự ký cam kết. Tôi không tin rằng tôi có thể nghĩ ra bất kỳ lý do nào để không, ngoài việc có một lịch sử git bị hỏng có thể hoặc không thể là những gì tôi đã viết. Tôi tin tưởng GitHub sẽ không gây rối với lịch sử git của tôi và tôi là tác giả duy nhất của khoảng 99% các dự án của tôi, vì vậy, tôi có nên làm như vậy không?

Tôi tìm thấy câu trả lời này , vì vậy tôi biết bây giờ là có thể, nhưng nói theo triết lý, tôi có nên không?

Câu trả lời:


12

Nếu các xác nhận đã được xuất bản, bạn không nên viết lại chúng cho bất kỳ mục đích nào (ngoại trừ loại bỏ rò rỉ dữ liệu ngẫu nhiên), vì điều này sẽ thay đổi ID cam kết của chúng. (Hãy nhớ rằng mỗi ID của cam kết dựa trên băm SHA-1 về nội dung của nó cam kết chính của nó.)

Điều đó có nghĩa là nó yêu cầu viết lại (và từ chức) tất cả các lần xác nhận tiếp theo và sẽ gây rắc rối cho bất kỳ ai đã lấy bất kỳ cam kết nào trong số đó.

Nhưng vì lý do tương tự, bạn không cần phải ký rõ ràng những cam kết cũ đó, ít nhất là không nhằm mục đích toàn vẹn dữ liệu. Vì mỗi cam kết chứa ID dựa trên SHA-1 của cha mẹ của nó, nên việc xác minh bất kỳ cam kết nào cũng sẽ ngầm xác minh toàn bộ lịch sử của nó thông qua chuỗi băm. Nó không quan trọng rằng chuỗi dài hơn một chút hoặc ngắn hơn.

Mặt khác, nếu bạn không tin tưởng SHA-1 về bảo mật, thì bạn nên xem xét việc ký cam kết hoàn toàn vô dụng, vì nội dung tệp của cam kết cũng được gọi bằng băm SHA-1. Điều duy nhất bạn ký trực tiếp (và không phải là hàm băm) là thông điệp cam kết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.