Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となりました: 2026-04-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください。

コミットメッセージの変更

コミット メッセージに不明確、不正確、または機密情報が含まれている場合、ローカルでメッセージを修正して、GitHub に新しいメッセージで新しいコミットをプッシュできます。 また、コミットメッセージを変更して、不足している情報を追加することも可能です。

直近のコミットメッセージの書き換え

          `git commit --amend` コマンドで、直近のコミット メッセージを変更できます。

Git では、コミットメッセージのテキストはコミットの一部として扱われます。 コミット メッセージを変更すると、コミット ID (コミットの SHA1 チェックサム) も変更されます。 実質的には、古いコミットに代わる新しいコミットを作成することになります。

オンラインにプッシュされていないコミット

コミットがローカル リポジトリにのみ存在し、お使いの GitHub Enterprise Server インスタンス にプッシュされていない場合、git commit --amend コマンドでコミット メッセージを修正できます。

  1. コマンドラインで、修正したいコミットのあるリポジトリに移動します。
  2. 「git commit --amend」と入力して Enter キーを押します。
  3. テキストエディタでコミットメッセージを編集し、コミットを保存します。

次回のプッシュ時に、お使いの GitHub Enterprise Server インスタンス に新たなコミットとメッセージが表示されます。

ヒント

Git で使うデフォルトのテキスト エディタは、core.editor の設定で変更できます。 詳しくは、Git のマニュアルの「基本的なクライアントの構成」をご覧ください。

古いまたは複数のコミットメッセージの修正

すでにコミットを お使いの GitHub Enterprise Server インスタンス にプッシュしている場合、修正済みのメッセージでコミットをフォース プッシュする必要があります。

警告

リポジトリの履歴が変更されるため、フォースプッシュは推奨されません。 フォースプッシュを行った場合、リポジトリをすでにクローンした人はローカルの履歴を手動で修正する必要があります。 詳しくは、Git のマニュアルの「上流のリベースからの回復」をご覧ください。

          **直近でプッシュされたコミットのメッセージを変更する**

1. 上記の手順に従って、コミット メッセージを修正します。 1. push --force-with-lease コマンドにより、古いコミットをフォース プッシュで上書きします。

git push --force-with-lease origin EXAMPLE-BRANCH
          **古いまたは複数のコミット メッセージを変更する**

複数のコミットまたは古いコミットの、メッセージを修正する必要がある場合は、インタラクティブなリベースを利用した後にフォースプッシュして、コミットの履歴を変更できます。

  1. コマンドラインで、修正したいコミットのあるリポジトリに移動します。

  2.        `git rebase -i HEAD~n` コマンドで、デフォルトのテキスト エディタに直近 `n` コミットの一覧を表示できます。
    
    # Displays a list of the last 3 commits on the current branch
    $ git rebase -i HEAD~3
    

    リストは、以下のようになります。

    pick e499d89 Delete CNAME
    pick 0c39034 Better README
    pick f7fde4a Change the commit message but push the same commit.
    
    # Rebase 9fdb3bd..f7fde4a onto 9fdb3bd
    #
    # Commands:
    # p, pick = use commit
    # r, reword = use commit, but edit the commit message
    # e, edit = use commit, but stop for amending
    # s, squash = use commit, but meld into previous commit
    # f, fixup = like "squash", but discard this commit's log message
    # x, exec = run command (the rest of the line) using shell
    #
    # These lines can be re-ordered; they are executed from top to bottom.
    #
    # If you remove a line here THAT COMMIT WILL BE LOST.
    #
    # However, if you remove everything, the rebase will be aborted.
    #
    # Note that empty commits are commented out
    
  3. 各コミット メッセージを変更する前に、pick を reword に置換してください。

    pick e499d89 Delete CNAME
    reword 0c39034 Better README
    reword f7fde4a Change the commit message but push the same commit.
    
  4. コミット一覧のファイルを保存して閉じます。

  5. 生成された各コミットコミットファイルに、新しいコミットメッセージを入力し、ファイルを保存して閉じます。

  6. 変更を GitHub にプッシュする準備ができたら、push --force コマンドを使用して、古いコミットを強制的にプッシュします。

    git push --force origin EXAMPLE-BRANCH
    

インタラクティブ リベースの詳細については、Git のマニュアルにある「インタラクティブ モード」を参照してください。

メモ

この方法でも、コミットメッセージを修正すると、ID が新しい新たなコミットメッセージが作成されます。 ただし、この方法では、修正したコミットに続く各コミットも新しい ID を取得します。各コミットには、親の ID が含まれているためです。

警告

修正したコミットをフォースプッシュしても元のコミットは GitHub から削除されない場合がありますので、元のコミット メッセージに機密情報が含まれている場合は注意してください。 古いコミットは、以降のクローンには含まれませんが、GitHub にキャッシュされて、コミット ID でアクセスできる可能性があります。 リモートリポジトリから古いコミットメッセージをパージするには、古いコミット ID を添えて サイト管理者にお問い合わせください。

参考資料