어떤 증상인가

commit 서명 문제가 나타난 입력, 직전 동작과 실제 결과를 함께 적습니다. 예를 들어 “가끔 실패”라고 쓰는 대신 정상 사례와 실패 사례를 하나씩 두고, 두 사례에서 달라진 version·설정·데이터를 표로 남깁니다.

사례 입력과 상태 결과
정상 가장 작은 정상 조건 기대한 결과
실패 한 조건만 달라진 재현 실제 오류·값

원인을 좁히는 순서

commit signature는 key 소유자가 object를 서명했음을 검증하지만 작성자의 권한·code 안전성과 key 신뢰를 자동 보장하지 않습니다.

working tree, index와 commit graph 중 어디가 예상과 다른지 먼저 나눕니다. 명령을 실행하기 전 현재 branch·HEAD와 변경 파일을 확인해야 복구 기준을 잃지 않습니다. status, diff, log --graph, reflog와 각 ref가 가리키는 commit을 먼저 확인한다. 정상과 실패를 번갈아 실행하고, 이 원인이 맞다면 달라져야 할 값부터 확인합니다. 관련 없는 로그와 설정을 한꺼번에 바꾸지 않습니다.

수정하고 확인하기

공유된 commit과 로컬 변경을 구분하고, 되돌릴 ref를 확보한 뒤 목적에 맞는 가장 작은 Git 명령을 사용합니다. 공유 이력과 로컬 이력을 구분하고 복구 가능한 ref를 만든 뒤 최소 범위의 비파괴 명령을 선택한다.

수정 전 실패 사례가 사라지고 기존 정상 사례가 유지돼야 합니다. 작업 트리, index, commit graph와 remote 차이를 다시 확인하고 필요한 빌드·테스트를 수행한다. git status, 필요한 git diff와 commit graph를 다시 확인하고 새 clone이나 별도 worktree에서도 기대한 history와 파일이 재현되는지 검사합니다. 가장 작은 실패 입력은 자동 테스트나 실행 가능한 점검 명령으로 남깁니다.

공식 문서와 적용 범위

문서의 기본값과 동작은 version에 따라 달라질 수 있습니다. 현재 도구 version, repository 상태, 보호 규칙과 협업 절차에서 다시 확인합니다.