GitHubでコミットメッセージを変更したい場面は、誤字を直したいときや、変更内容が伝わりにくい表現を改善したいときなどに訪れます。
ただし、コミットメッセージの修正は履歴の書き換えにつながるため、Web画面だけで完結する操作と、ローカル環境で対応する操作を区別することが大切です。
この記事では、GitHubの画面上でできる編集の範囲、直近のコミットを修正する方法、すでに共有した履歴を扱う際の注意点まで、順を追って紹介します。
個人で管理するブランチか、複数人で使う共有ブランチかによって、選ぶべき対応は変わります。
コミットメッセージ変更の結論と判断基準

それではまず、githubでコミットメッセージを変更する際の結論と判断基準について解説していきます。
GitHubのWeb画面でできる編集範囲
GitHubのリポジトリ画面では、通常のコミット履歴に表示されるコミットメッセージそのものを、後から直接書き換える機能は基本的にありません。
コミットは変更内容、作成者、日時、親コミットなどを含む履歴データであり、メッセージだけを変えた場合でも別のコミットとして扱われます。
そのため、GitHub上で見えているコミット一覧を開き、鉛筆アイコンで件名だけを修正する、といった操作はできません。
一方で、Pull Requestのタイトルや説明文、Issueの内容、ファイル編集時にこれから作成するコミットのメッセージはWeb画面から変更できます。
過去のコミットを修正する操作と、これから作るコミットの文言を設定する操作は別物として理解すると混乱しにくいでしょう。
直近の未共有コミットを修正する方法
まだリモートリポジトリへpushしていない直近のコミットなら、ローカル環境で比較的安全に修正できます。
ターミナルで対象リポジトリを開き、次のコマンドを実行すると、直前のコミットメッセージを編集できます。
git commit –amend -m “修正後のコミットメッセージ”
この操作を行うと、元のコミットは置き換えられ、新しいメッセージを持つコミットが作られます。
コミットIDも変化するため、修正前のコミットと修正後のコミットはGitの内部では同一ではありません。
ローカルでのみ管理している段階なら影響範囲が小さく、誤字修正や表現の見直しに向いた方法です。
共有済みコミットを扱う際の優先順位
すでにGitHubへpush済みで、他のメンバーも参照しているコミットを変更する場合は慎重な判断が必要です。
履歴を書き換えて強制pushすると、他の人が取得済みの履歴と食い違い、pullやrebaseの際に競合が起こる可能性があります。
特にmain、master、developなどの共有ブランチでは、コミットメッセージの見栄えだけを理由に履歴を書き換える必要があるか検討しましょう。
共有済みの履歴では、メッセージ修正の必要性よりもチームの作業を止めないことを優先します。
誤解を防ぐ補足が目的なら、Pull Requestの説明やレビューコメント、Issueへの追記で対応できる場合もあります。
Web画面で作成するコミットの編集手順
続いては、GitHubのWeb画面からファイルを編集し、新しいコミットメッセージを設定する手順を確認していきます。
対象ファイルを開く操作
GitHubにログイン後、対象のリポジトリを開き、変更したいファイルを選択します。
ファイルの内容が表示されたら、編集権限がある場合は画面右上付近にある編集用のアイコンを選びます。
ブラウザ上のエディタへ移動したら、必要な箇所だけを修正してください。
意図しない改行や空白の変更が混ざると、レビュー時に差分が読みにくくなります。
コミットメッセージを考える前に、変更差分が最小限になっているかを確認する習慣が役立ちます。
コミットメッセージ入力欄の使い方
編集が終わると、ページ下部に変更を保存するための入力欄が表示されます。
最初の入力欄には短い件名を入れ、必要に応じて次の欄に変更理由や補足を記載します。
件名は、何をしたのかが一目で分かる内容にすると、履歴を後から探しやすくなります。
良い例 ログイン画面の文言を修正
避けたい例 修正しました
「修正」「更新」だけでは対象が分からないため、ファイル名や機能名、変更内容を自然に含めるとよいでしょう。
日本語のメッセージでも問題ありませんが、チームの既存ルールがある場合は表記をそろえることが重要です。
コミット先ブランチの選択
Web画面では、現在のブランチへ直接コミットするか、新しいブランチを作成してPull Requestを作るかを選べる場合があります。
個人用ブランチや小規模な修正なら直接コミットでも進めやすい一方、共有ブランチでは新規ブランチからPull Requestを作成する流れが一般的です。
変更を送信する前に、ブランチ名とコミットメッセージをもう一度見直してください。
本番へつながるブランチに直接コミットしない運用を採用すると、確認漏れのリスクを減らせます。
Web画面のコミット欄で修正できるのは、これから作る新しいコミットのメッセージです。
ローカル環境での履歴編集方法
続いては、すでに作成したコミットのメッセージをローカル環境で変更する方法を確認していきます。
直前コミットのamend操作
最も利用頻度が高いのは、直前のコミットをamendで置き換える方法です。
メッセージだけを変更したい場合は、変更ファイルを追加しない状態でgit commit –amendを実行します。
エディタが起動する設定なら、表示されたメッセージを書き換えて保存し、編集を完了します。
git commit –amend
保存後に終了すると、直前コミットのメッセージが更新されます。
ファイル内容も同時に追加したい場合は、先にgit addを実行してからamendを使います。
ただし、メッセージ修正だけが目的なら、不要な変更を混ぜないことが安全です。
複数コミットを修正するinteractive rebase
直前ではない過去のコミットメッセージを変更したい場合は、interactive rebaseを使います。
たとえば直近3件の履歴を対象にするなら、次のように実行します。
git rebase -i HEAD~3
表示された一覧で、メッセージを変えたいコミットのpickをrewordに変更して保存します。
その後、対象ごとにメッセージ編集画面が開くため、内容を修正して保存します。
この操作は複数のコミットIDを書き換えるため、ローカル履歴をよく確認してから実行してください。
対象範囲を必要以上に広げないことが、rebaseによる事故を防ぐ基本です。
変更結果の確認方法
編集後は、git log –onelineを実行すると、短い形式でコミット履歴を確認できます。
意図したメッセージになっているか、対象外のコミットまで変更されていないかを確認しましょう。
| 確認項目 | 確認方法 | 見るポイント |
|---|---|---|
| 最新履歴 | git log –oneline | 件名と並び順 |
| 詳細情報 | git show コミットID | 変更内容と作成情報 |
| 作業状態 | git status | 未コミットの変更有無 |
| リモートとの差分 | git status | pushやpullの必要性 |
確認を終えてからpushへ進めば、想定外の履歴変更に気付きやすくなります。
GitHubへの反映と強制pushの注意点
続いては、変更したコミットメッセージをGitHubへ反映する方法と、強制pushの注意点を確認していきます。
未pushの場合の通常push
コミットメッセージを変更したあと、一度もpushしていなければ通常のpushで問題ありません。
対象ブランチがmainならgit push origin main、新しいブランチならそのブランチ名を指定します。
GitHubのコミット一覧を再読み込みすると、修正後のメッセージが表示されます。
このケースではリモート側に古いコミットが存在しないため、履歴の衝突は起こりません。
未pushの段階でメッセージを整えることが、最もシンプルで安全なタイミングです。
push済みの場合のforce-with-lease
すでにpush済みのコミットをamendやrebaseで変更した場合、通常のgit pushは拒否されます。
ローカルとリモートで履歴が異なるため、Gitが意図しない上書きを防いでいるからです。
履歴を書き換える必要があり、かつチームの合意が取れている場合は、次のように実行します。
git push –force-with-lease origin ブランチ名
–force-with-leaseは、取得時点からリモートブランチが他者によって更新されていない場合にだけ上書きを試みます。
単純な–forceよりも安全性を高められますが、共有履歴を書き換える性質は変わりません。
ブランチ保護ルールとの関係
GitHubでは、特定ブランチに対して強制pushを禁止するブランチ保護ルールを設定できます。
この設定がある場合、権限があっても強制pushできない、または管理者による設定変更が必要になることがあります。
保護ルールは不便に見えることもありますが、重要な履歴やリリースブランチを守るための仕組みです。
強制pushが失敗したときは、コマンドを繰り返す前に、ブランチ保護とチーム運用を確認します。
履歴の整形が必要なら、管理者やレビュー担当者に共有し、作業時間帯を決めて実施するとよいでしょう。
読みやすいコミットメッセージの書き方
続いては、修正後に迷いにくい、読みやすいコミットメッセージの書き方を確認していきます。
件名に入れるべき情報
コミットメッセージの件名では、変更対象と変更内容を短く伝えることが基本です。
たとえば「検索画面に並び替え条件を追加」「注文APIのタイムアウト値を調整」のように書くと、履歴一覧だけでも内容を把握できます。
「対応」「更新」「作業中」といった抽象的な語だけでは、数週間後に見返したときに意味を追いにくくなります。
誰が読んでも変更の目的を想像できる件名を意識してください。
本文欄で補足する内容
件名に収まりきらない背景は、コミットメッセージの本文へ記載できます。
不具合の原因、仕様上の理由、影響する画面やAPI、テスト内容などを簡潔に残すと、将来の調査に役立ちます。
ただし、長い議論や意思決定の経緯は、Pull RequestやIssueに集約したほうが見通しを保ちやすいでしょう。
| 残す場所 | 向いている内容 | 例 |
|---|---|---|
| コミット件名 | 変更の要点 | 会員登録フォームの必須項目を修正 |
| コミット本文 | 技術的な補足 | バリデーション条件を仕様書に合わせて変更 |
| Pull Request | レビューに必要な説明 | 確認手順と画面キャプチャ |
| Issue | 課題と議論の記録 | 不具合の再現条件と対応方針 |
情報の置き場所を使い分けることで、GitHub全体の履歴が読みやすくなります。
チームでそろえたい表記ルール
チーム開発では、コミットメッセージの先頭に種類を付ける運用もよく使われます。
たとえばfeatは機能追加、fixは不具合修正、docsは文書修正、refactorは振る舞いを変えない整理を表すために利用されます。
英語の接頭語を使うか、日本語で統一するかに正解はありません。
重要なのは、リポジトリ内で表記がばらつかず、参加者全員が判断しやすいことです。
既存コミットの書き方を観察して合わせるだけでも、十分に実用的なルールになります。
コミットメッセージ変更のまとめ
GitHubのWeb画面では、過去のコミットメッセージを直接編集することは基本的にできません。
一方で、Web画面からファイルを編集して新しいコミットを作る際には、保存前の入力欄でメッセージを自由に設定できます。
直前の未pushコミットであればgit commit –amendを使う方法が分かりやすく、過去の複数コミットにはinteractive rebaseが利用できます。
push済みの履歴を変更するときは、コミットIDが変わる点と、強制pushがチームへ与える影響を必ず意識してください。
共有ブランチでは履歴の美しさより共同作業の安全性を優先することが重要です。
変更内容と目的が伝わるメッセージを残せば、レビュー、障害調査、将来の保守まで進めやすくなります。