今回はコミットメッセージの次の内容を書いていきます。
- Push前にコミットメッセージ修正
- Push後にコミットメッセージ修正(歴史改変)
- GitHubでコミットに対してのコメント補足
1つ目、2つ目はGitの世界で、よく見かける内容ですが、一応書きます。
3つ目は、GitHubならではっていう内容です。
本題に入ります。
コミットメッセージを後から変更する方法(Git)
最初にGitの世界の場合です。
コミットメッセージを修正する(直近)
直近のコミットメッセージを修正する場合、--amend
オプションを使用します。
git commit --amend
これにより、最新のコミットメッセージを編集できます。
コミットメッセージを修正する(以前)
直近ではなく、過去のメッセージを修正する場合は、rebaseを利用します。
先ほどの場合と同様、既にPush済みであれば、強制Pushが必要になるため、お勧めはしません。
# 直近3個のログを対象
git rebase -i HEAD^^^
# 次のように表示されます。
pick 873b4d8 aaa
pick b97e403 aaaa
pick b6433d6 aaaaa
# コミットメッセージ変更対象をPickからrewordにします。
reword 873b4d8 aaa
reword b97e403 aaaa
pick b6433d6 aaaaa
→ コミットメッセージ変更が促されるため対応します。
その後、必要に応じてrebase --continue
最後に、
git push -f
を実行すれば、リモートのリポジトリも変更されます。
※この手法は他のチームメンバーに迷惑をかける可能性があるため、使用する際は十分な注意と連絡が必要です。
GitHub上でコミットに対するコメントで補足する
Push済みリポジトリの歴史改変はしたくないですね(カオスな事態は避けたい)。
コミットメッセージを変更するのではなく、GitHub上でコメントを追加する方法もあります。この方法なら、履歴を改変することなく、必要な情報を補足できます。
コミットに対するコメントって?
GitHubでは、コミットに対してコメントが可能です。
(リポジトリ→Code→Commits→該当コミットをクリック)
コミットメッセージの変更は出来ない・・・。
けど、情報を残しておきたい!ってときには使えます。
Issue番号を含めれば、Issueに対してのリンクも設定されます!
→ 辿れるっていいことだと思います。
REST-APIを使ってコメントを取得する
GitHubのREST-APIを使用して、コミットに対するコメントを取得することもできます。
# curlを使った実行例
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/OWNER/REPO/comments
→ JSON形式で返ってきます。
- コミットハッシュ値も一緒に取得できるため、後から照合も可能です。
- APIを活用することで、コメントを効率的に管理し、他のツールと連携させることができます。
まとめ
後からコミットメッセージを修正する方法について書きました。
ただし、Gitでコミットメッセージの修正は、既にPush済みの場合は、非常に難しいと考えます。強制Pushは通常、禁止操作だと考えるからです。
GitHubでは後から該当のコミットに対してコメントを補足できます。
その際に、Issue番号を含めれば、Issueに対するリンクも貼れるため、後からでも関連付けを維持したい場合にはとっておきの方法だと考えます。
最後までお付き合いいただき、ありがとうございました!
コメント