怠惰な理由で、デフォルトのメッセージを使用して複数のコミットをプッシュしましたが、今では実際に各コミットで何が変更されたのかわからないので、面倒です。
以前のコミットからのメッセージのみを編集し(可能であれば)、コミットツリーを保存するにはどうすればよいですか?
答え1
さまざまなコミットのコミットメッセージを編集するには、次のようにします。
git rebase -i firstsha
firstsha
編集したい最初のコミットの親コミット識別子はどこにありますか? (ここでは有効な引用符を使用できるため、git rebase -i HEAD~4
最後の4つのコミットが表示されます。)
開くエディタで、変更したいコミットのすべての「選択」エントリを「reword」に変更してからエディタを閉じると、選択したすべてのコミットのコミットメッセージを入力するように求められます。
この点に注意してください〜するコミットのハッシュが変更されるので、コミットツリーを変更します。新しいツリーを強制的にプッシュするか、新しいブランチにプッシュする必要があります。マージをリベースするときは注意してください。-r
()を使用--rebase-merges
して読んでください。git rebase
マンページの「マージリベース」セクション。
最後のコミットだけをすばやく編集するには:
git commit --amend
(ただし、すでに準備されたコミットがあることを確認してください。)
答え2
あなたが探しているものgit rebase
。
前のメッセージのみを変更するには、git commit
次を使用してください。
git commit --amend
以前のコミットを必要に応じて変更し、編集内容を保存します。
ただし、以前のコミットを変更する必要がある場合はrebase
。
git rebase -i HEAD~N
ここで、Nは返すコミットの数(2、12、6など)に等しくなります。
ここでは、コミットを含むテキストエディタをインポートする必要があります。オプションをからに変更してpick
メッセージを変更しますreword
。
変更するすべてのコミットを識別し、そのオプションを適切に変更したら、エディタを保存して閉じます。次に、各コミットメッセージを変更します。満足すれば、以下を実行できます。
git push --force
ハッシュは異なりますが、必要な変更を加えたので、Gitの記録を維持する必要があります。確認する必要がある他のリンクは次のとおりです。
7.6 Gitツール - 履歴の書き換え
GitHub ヘルプ - コミットメッセージの変更
StackOverflow - 前のコミットメッセージの変更に関する質問