GPG 제출에 git로 서명하는 것을 잊었을 때
배경.
나는 가능한 한 개발 상황에서 GPG 서명이 있는 것을 제출했지만 자신의 새로운 PC 환경과 원격 서버에서 직접 개발하고 제출할 때 GPG 설정을 잊어버리면 개발된 프로그램이 멈추는 것을 매우 싫어한다.
그럼 이번엔 앞으로도 추가 서명이 가능한 제출 편집 방법을 소개한다.
TL;DR
git rebase -i {ターゲットの一つ手前のコミットID}
pick
에서 edit
로 변경하고 저장git commit --amend --no-edit -S
git rebase --continue
서명 확인
우선 서명이 확인됐는지 확인해 보자.
명령은
git log --show-signature
를 통해 확인할 수 있다.kazuaki@yeezy:~/fun/zenn.dev$ git log --show-signature
commit 63b4a857462ee7f29eb81fc2118a5e9acd831138 (HEAD -> master)
Author: Kazuaki Ishiguro <[email protected]>
Date: Sun Oct 17 21:01:49 2021 +0900
added zenn-cli
commit f41e5df5c31db4b3df7561447242038c0b677ea8 (origin/master)
gpg: Signature made Mon 06 Sep 2021 10:19:01 AM JST
gpg: using EDDSA key ...BECD98A8A99831
gpg: Good signature from "Kazuaki Ishiguro <[email protected]>" [ultimate]
Author: Kazuaki Ishiguro <[email protected]>
Date: Mon Sep 6 10:19:01 2021 +0900
Initial setup
상기 일지에서 제출 ID63b4a857462ee7f29eb81fc2118a5e9acd831138
는 Author와 Date 및 제출 정보만 기재하고 제출 IDf41e5df5c31db4b3df7561447242038c0b677ea8
는 gpg의 서명 정보를 기재했으며 최근 제출에는 서명이 없음을 확인했다.편집 커밋
그럼 우리 빨리 커미션을 편집합시다.
목표 지정
사용된 명령은
git rebase
입니다.git rebase
에서 커밋을 편집하려면 대상 커밋 ID를 지정해야 하는 이전 커밋이 필요합니다.이번 예는 지정해야 한다
f41e5df5c31db4b3df7561447242038c0b677ea8
.kazuaki@yeezy:~/fun/zenn.dev$ git rebase -i f41e5df5c31db4b3df7561447242038c0b677ea8
# 以下エディタ内での表示
pick 63b4a85 added zenn-cli
# Rebase f41e5df..63b4a85 onto f41e5df (1 command)
#
# Commands:
......
rebase
의 행동에 대해 더 자세히 알고 싶으신 분들은 공식 문서를 참고하시기 바랍니다.편집하려는 커밋 ID 왼쪽에 있는 명령을 변경하고(pick->edit) 저장
상술한 예는 아래와 같다.
# 以下エディタ内での表示
edit 63b4a85 added zenn-cli
# Rebase f41e5df..63b4a85 onto f41e5df (1 command)
#
# Commands:
상기 상태에서 저장할 때 편집기가 끝나고 터미널 화면으로 돌아간다.돌아오면 다음 화면이 표시됩니다.
kazuaki@yeezy:~/fun/zenn.dev$ git rebase -i f41e5df5c31db4b3df7561447242038c0b677ea8
Stopped at 63b4a85... added zenn-cli
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
서명 추가
2단계에서 대상 제출은 편집 가능 상태입니다.
친절한 일에도 필요한 지령이 기재되어 있는데 그 나머지 지령에 따라 끝난다.
그럼에도 이번 목적은 서명만 추가해 편집하는 것이기 때문에
--no-edit
와 -S
의 옵션을 지정해야 한다.명령의 상세한 상황은 아래와 같다.
--amend
수정 전 제출.--no-edit
기존 메시지를 사용합니다.-S
GPG 서명을 지정합니다.kazuaki@yeezy:~/fun/zenn.dev$ git commit --amend --no-edit -S
[detached HEAD 2fb6f5e] added zenn-cli
Date: Sun Oct 17 21:01:49 2021 +0900
2 files changed, 909 insertions(+), 896 deletions(-)
rewrite yarn.lock (96%)
편집 끝내기
업데이트
HEAD
가 필요하기 때문에 마지막으로 리베이스를 계속하는 옵션--continue
을 지정하여 편집을 끝냅니다.kazuaki@yeezy:~/fun/zenn.dev$ git rebase --continue
Successfully rebased and updated refs/heads/master.
서명 다시 확인
그럼 편집이 잘 되는지 확인해 보세요.
처음과 같이 두드리다
git log --show-signature
.kazuaki@yeezy:~/fun/zenn.dev$ git log --show-signature
commit 2fb6f5e4ef43928ae465bf904efcfd3d98a0d45e (HEAD -> master)
gpg: Signature made Sun 17 Oct 2021 09:33:28 PM JST
gpg: using EDDSA key ...BECD98A8A99831
gpg: Good signature from "Kazuaki Ishiguro <[email protected]>" [ultimate]
Author: Kazuaki Ishiguro <[email protected]>
Date: Sun Oct 17 21:01:49 2021 +0900
added zenn-cli
commit f41e5df5c31db4b3df7561447242038c0b677ea8 (origin/master)
gpg: Signature made Mon 06 Sep 2021 10:19:01 AM JST
gpg: using EDDSA key ...BECD98A8A99831
gpg: Good signature from "Kazuaki Ishiguro <[email protected]>" [ultimate]
Author: Kazuaki Ishiguro <[email protected]>
Date: Mon Sep 6 10:19:01 2021 +0900
Initial setup
커밋을 편집하고 GPG 서명을 추가했습니다.같은 문제로 고민하는 사람에게 좋은 점이 있다면 다행이다.
Reference
이 문제에 관하여(GPG 제출에 git로 서명하는 것을 잊었을 때), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kazuakiishiguro/articles/e0c755255551fe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)