Skip to main content
ドキュメントには� �繁に更新が� えられ、その都度公開されています。本ページの翻訳はま� 未完成な部分があることをご了承く� さい。最新の情� �については、英語のドキュメンテーションをご参照く� さい。本ページの翻訳に問題がある� �合はこちらまでご連絡く� さい。

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2022-06-03. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてく� さい。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してく� さい。

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

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

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

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. 上記の手� �に従って、コミットメッセージを修正します。
  2. Use the push --force-with-lease command to force push over the old commit.
    $ git push --force-with-lease origin example-branch

古いまたは複数のコミットメッセージを変更する

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

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

  2. git rebase -i HEAD~n コマンドで、デフォルトのテキストエディタに直近 n コミットの一覧を表示できます。

    # 現在のブランチの最後の 3 つのコミットのリストを表示する
    $ 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 Enterprise Serverから削除されない� �合がありますので、元のコミットメッセージに機密情� �が含まれている� �合は注意してく� さい。 古いコミットは、以降のクローンには含まれませんが、GitHub Enterprise Serverにキャッシュされ、コミット ID でアクセスできます。 リモートリポジトリから古いコミットメッセージをパージするには、古いコミット ID を添えて your site administratorにお問い合わせく� さい。

参考リンク