오래된 자식 커밋에 GPG 서명하는 것이 좋은 생각입니까?


9

방금 git에게 GPG 키를 사용하도록 지시하는 것을 잊었다는 것을 깨달았습니다. 나는 서명하지 않고 많은 커밋을했습니다. 돌아가서 서명해야합니까?

태그에 서명해야하는지 여부는 언급하지 않지만 커밋에 서명하기로 결정했습니다. 나는 내가 쓴 것이거나 아닐 수도있는 손상된 자식 기록을 가지고있는 것 외에는 어떤 이유도 생각할 수 없다고 생각하지 않습니다. 나는 GitHub가 내 자식 역사를 뒤엎 지 않기를 믿으며 내 프로젝트의 약 99 %의 유일한 저자이므로 그렇게해야합니까?

나는 이 대답을 찾았 으므로 이제는 가능하지만 철학적으로 말할 수 있습니까?

답변:


12

커밋이 이미 게시 된 경우 의도 하지 않은 데이터 누수 제거를 제외하고는 커밋 ID가 변경되므로 어떤 용도로든 다시 작성 해서는 안됩니다 . (각 커밋의 ID는 해당 컨텐츠의 SHA-1 해시 상위 커밋을 기반으로합니다.)

즉 , 모든 후속 커밋을 다시 작성하고 사임 해야하며 이미 커밋을 가져온 사람에게는 문제가 발생할 수 있습니다.

그러나 같은 이유로 적어도 데이터 무결성 목적을 위해 이전 커밋에 명시 적으로 서명 할 필요는 없습니다 . 각 커밋에는 부모의 SHA-1 기반 ID가 포함되므로 단일 커밋을 확인 하면 해시 체인을 통해 전체 기록 을 암시 적으로 확인 합니다 . 체인이 조금 더 길거나 짧다는 것은 중요하지 않습니다.

반면, SHA-1을 보안으로 신뢰하지 않으면 커밋의 파일 내용 SHA-1 해시로 참조 되므로 커밋 서명을 완전히 쓸모없는 것으로 고려해야 합니다. 해시가 아닌 직접 서명하는 것은 커밋 메시지입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.