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. 変更する各コミットメッセージの前の pickreword に置き換えます。

    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にお問い合わせく� さい。

参考リンク