gitで途中のコミットを削除したい場合はリベースを使おう
この投稿は1年以上前に公開されました。 現在の情報とは異なる可能性がありますので、ご了承ください。
おはようございます.gitで途中のコミットを削除したい場合はリベースを使おうと言うことでその手順を書いていきます.まず事前にブランチを切っていて、そのブランチに3コミットを行っていてコミットの先頭にいると過程して話を進めていきます.
まず最新のコミットから3つ前までのどれかを削除したい場合、下記のコマンドを打ちます.
git rebase -i HEAD~3コマンドを打つと下記の画面がターミナルに現れます.俗に言うvi編集モードです.
pick abcdef1 コミットメッセージ1
pick abcdef2 コミットメッセージ2
pick abcdef3 コミットメッセージ3次にvi操作を行い削除したいコミットを以下のように書き換えます.例では真ん中のコミットを削除したいのでpickからdropに置き換えました.
pick abcdef1 コミットメッセージ1
drop abcdef2 コミットメッセージ2
pick abcdef3 コミットメッセージ3置き換え保存します.この時に衝突が発生した場合は衝突が発生したファイルを修正します.その後、次のコマンドを打ち現在のブランチに取り込みます.
git add <ファイル名>
git rebase --continue尚、リモートにプルリクエストしている場合は強制上書きを行いたい場合は下記のコマンドを行います.
※強制上書きは危ないですので、詳しいひとに事前に連絡を行いOKが出たときにだけ行いましょう.
git push --force origin リモートブランチ名明日へ続く.