Mitomex Blog

過去の離れたコミットをまとめたいときの git rebase の使い方

2021-01-07

何個かコミットを行ったあと、ちょっと前のコミットにまとめたい内容ができたときの対応方法。

git log --oneline

でログを確認。

125efd2 (HEAD -> main) style.css の出力ファイルを追加
a360883 style.njk を sitemap に表示させないように修正
effafca インクルードを使って複数のCSSファイルを統合してstyle.cssを作成
423390c (origin/main) 出力ファイル更新

1行目の 125efd2 のコミットと effafca のコミットをまとめたいとする。

まとめたいコミットの古い方 effafca の一つ前のコミット 423390c をコピーする。

git rebase -i 423390c

と入力。

pick effafca インクルードを使って複数のCSSファイルを統合してstyle.cssを作成
pick a360883 style.njk を sitemap に表示させないように修正
pick 125efd2 style.css の出力ファイルを追加

# Rebase 423390c..125efd2 onto 423390c (3 commands)
...

と表示される。

3行目の pick を fixup に変更する。

pick effafca インクルードを使って複数のCSSファイルを統合してstyle.cssを作成
pick a360883 style.njk を sitemap に表示させないように修正
fixup 125efd2 style.css の出力ファイルを追加

# Rebase 423390c..125efd2 onto 423390c (3 commands)
...

3行目と2行目を入れ替える。

pick effafca インクルードを使って複数のCSSファイルを統合してstyle.cssを作成
fixup 125efd2 style.css の出力ファイルを追加
pick a360883 style.njk を sitemap に表示させないように修正

# Rebase 423390c..125efd2 onto 423390c (3 commands)
...

これで保存して終了すると

4039b11 (HEAD -> main) style.njk を sitemap に表示させないように修正
6efa77d インクルードを使って複数のCSSファイルを統合してstyle.cssを作成
423390c (origin/main) 出力ファイル更新

となって結合することができた。

rebase -i で順番を入れ替えるという発想がなかったので勉強になった。

ハッシュが変わってしまうので、リモートに push する前に行う。