目次
シナリオ: バッチで複数回送信する場合、送信されたメッセージが仕様に準拠していないことが突然判明し、それを変更したい場合は、それを使用できます
最新のコミットを変更する
最新のコミットを修正したいだけの場合は、次のコマンドを直接使用します。
git commit --amend
これを変更すると、コマンド ラインが vim インターフェイスに入り、最後に送信されたメッセージを変更し、メッセージを変更して、終了することができます。次に、プッシュを強制します (git push origin branch name -f)。
過去のいくつかのコミットを変更する
過去のいくつかの Commit メッセージを変更したい場合、最新のものを変更するかどうかは少し面倒です。
たとえば、要件があり、3 つのコミットを送信した場合、最初に git log を実行してコミット レコードを表示します。
初めて投稿したメッセージとその回数を修正したい
この時点で、次のコマンドを使用する必要があります
git rebase -i 9c8b8a837dc2d831983339924a6eba91ba9a77d3
Vim インターフェイスに入りました:
パラメータの説明:
- pick(p) : コミットを保持
- reword(r) : コミットを保持しますが、コミットのメッセージを変更する必要があります
- edit(e) : コミットは保持しますが、コミットを停止して変更したい (ファイルの変更を含む)
- squash(s) : コミットを前のコミットとマージします (複数のコミットを 1 つにマージします)
- fixup(f) : このコミットを前のコミットとマージしますが、このコミットのコメント情報は保持したくありません
- exec(x) : シェル コマンドを実行します
- drop(d) : このコミットを破棄します
実際のニーズに応じてコマンドを選択します. ここで必要なのは、メッセージを変更するために使用される reword です.
ここで複数のレコードを変更する必要がある場合は、対応するコミット ID の前にあるピックを r に変更するだけです。ここでは 1 つだけを変更します。
変更が完了したら (ここでメッセージを変更する必要はありません)、esc を押してから、wq と入力して保存して終了します。
すると、d79776c の送信ページが表示されるので、メッセージを編集します。
同様に esc を押してから、wq と入力して保存し、終了します。
複数のアイテムを変更する場合は、各コミットの送信ページに順番に移動し、メッセージを順番に編集します. 最後の編集が完了すると、次のように出力されます:
refs/heads/master のリベースと更新に成功しました。
これは、リベースが成功したことを意味します。もう一度 git ログを見てみましょう。
git push origin master (ブランチ名) -f oh~ を忘れずに