Git:既存のコミットメッセージを変更する

間違いはよくあることです、私たちは皆それを作ります。 だから彼らは鉛筆に消しゴムをつけました。 そして、これはGitのようなツールでも違いはありません。 一部の変更は元に戻すのが難しい場合がありますが、通常は方法があります。

では、既存のコミットメッセージを変更したい場合はどうでしょうか。 幸い、これはGitで簡単に実行できますが、いくつかの要因によってメソッドが少し変わる場合があります。

まだリモートにプッシュされていない最後のコミットを修正

リモートリポジトリを変更する必要がないため、これは最も単純なケースです。自分のリポジトリを変更するだけです。 この場合、次のコマンドを使用できます。

$ git commit --amend

このコマンドを実行すると、エディターが開き、ここで変更できます。 last コミットメッセージ。 完了してエディターを保存/閉じると、コミットメッセージが変更されます。

個人的には、コマンドラインでほとんどのことを実行することを好みます。これは、上記のコマンドに引数とメッセージを追加することで実行できます。

$ git commit --amend -m "Added a new file"

この方法でエディターを開くことはできませんが、代わりにコミットメッセージをすぐに変更します。

リモートにプッシュされた最後のコミットを修正

これは別の一般的なケースであり、独自のリポジトリを変更する必要があるだけでなく、ローカルブランチよりもはるかに進んでいる可能性があるリモートリポジトリも変更する必要があるため、修正が少し難しくなります。

最初のステップは、前のセクションで行ったように、最後のコミットを修正することです。

$ git commit --amend -m "Added a new file"

次に、これらの変更をリモートリポジトリにプッシュする必要があります。 ただし、これはを使用して行う必要があります --force フラグ。

$ git push <remote> <branch> --force

リモートリポジトリを独自のローカル状態で上書きするには、この方法で行う必要があります。

プッシュを強制することで、あなたも 失う ローカルブランチにまだ持っていないローカルブランチでのコミット。 注意して進んでください!

ベストプラクティス、業界で認められた標準、および含まれているチートシートを含む、Gitを学習するための実践的で実用的なガイドを確認してください。 グーグルGitコマンドを停止し、実際に 学ぶ それ!

間違いをすぐに見つけることができれば、変更を加えることは問題になりません。 それ以外の場合は、変更したいコミットメッセージの後に行われた変更が失われないように、別の解決策を見つける必要があります。

InteractiveRebaseを使用する

説明した前のソリューションよりも柔軟な別のオプションは、インタラクティブなリベースを使用することです。 これを行うと、最後のN個のコミットを検査し、ピッキング、スカッシュなどの変更を加えることができます。

リベースを開始するには、次のコマンドを使用できます。

$ git rebase -i HEAD~n

ここでは、 n 検査および編集するコミットの数です。 次に、次のようなコミットのリストが表示されます。

$ $ git rebase -i HEAD~4
pick 788ebf0 Oops, I forgot to add a new file
pick ced1329 Fixed a super critical bug
pick 5e9cdc5 Added a new file



















ご覧のとおり、最後のN個のコミットがすべて一覧表示されており、必要に応じてメッセージを変更できます。

タイムスタンプ:

より多くの スタックアバス