はじめに
こんばんは。
久々に gitで rebase を使ったので、ちょっとした備忘録として残しておきます。
gitのバージョンは以下
$ git --version git version 2.32.0
本番
今まで自分は rebase 使う際は 無駄なコミットをまとめる際に使ったりしていました。
$ git rebase -i HEAD~3 hint: Waiting for your editor to close the file... pick 8edxxxxxx aaaaa s 2a8xxxxxx bbbbb s 60cxxxxxx ccccc s 532xxxxxx dddd $ git push origin head -f
みたいな感じで。
今回はコミット漏れした修正ファイルを以前のコミットに混ぜたいということやりたい感じでした。
直前のコミットであれば --amend
で出来ます。
$ git commit -a --amend
ただ、今回は2つ前のコミットに混ぜたかったんです。。。
色々調べてこんな感じでできました。
# 修正物をまず退避 $ git stash save # reabseインタラクションモード実行 $ git rebase -i HEAD~3 hint: Waiting for your editor to close the file... pick 8edxxxxxx aaaaa edit 2a8xxxxxx bbbbb ← 二個目のコミットを edit にする pick 60cxxxxxx ccccc pick 532xxxxxx dddd # 修正物をもってくる $ git stash pop # 修正物をコミット(amendが必要) $ git commit -a --amend # コミットを反映 $ git rebase --continue
上記のコマンドの順番で狙ったコミットに修正物を混ぜることが出来ました。
終わり
rebase 便利ですね。
ぶっちゃけ変になったら git rebase --abort
で全部巻き戻せばいいので。
そろそろ今年の目標の資格の勉強しようっと。
現場からは以上です。