特定のコミットを変更するにはどうすればいいですか? 質問する

特定のコミットを変更するにはどうすればいいですか? 質問する

次のようなコミット履歴があります:

  1. HEAD
  2. HEAD~
  3. HEAD~2
  4. HEAD~3

git commit --amend現在のHEADコミットを変更します。しかし、どのように変更するのでしょうかHEAD~3?

ベストアンサー1

使用git rebaseたとえば、 commit を変更するにはbbc643cd、次のコマンドを実行します。

git rebase --interactive bbc643cd~

~コマンドの末尾のチルダに注意してください。これは、 の以前のコミットの上にコミットを再適用する必要があるためですbbc643cd(つまりbbc643cd~)。

デフォルトのエディターで、の行pickを に変更しますeditbbc643cd

ファイルを保存して終了します。git はファイル内のコマンドを解釈して自動的に実行します。commit を作成したばかりの以前の状況に戻りますbbc643cd

この時点で、bbc643cd最後のコミットとなり、簡単に修正できる変更を加えたら、次のコマンドでコミットします。

git commit --all --amend --no-edit

その後、次のコマンドを使用して、前の HEAD コミットに戻ります。

git rebase --continue

警告: これにより、そのコミットとすべての子コミットの SHA-1 が変更されることに注意してください。つまり、これにより、その時点以降の履歴が書き換えられます。これを行うとリポジトリが壊れることがありますコマンドを使用してプッシュする場合git push --force

おすすめ記事