文字数[720文字] この記事は1分54秒で読めます.

gitで途中のコミットを削除したい場合はリベースを使おう

20240803

Logging

おはようございます.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 リモートブランチ名

明日へ続く.

209 Views

評価::★★★☆☆[3]

著者名  @taoka_toshiaki

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

continue, drop, drop abcdef, force origin リモートブランチ, git, git add, git push, git rebase, pick, pick abcdef, vi操作, コマンド, コミット, ターミナル, ブランチ, プル, リベース, リモート, 強制上書き, 衝突,