過去の離れたコミットをまとめたいときの 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 する前に行う。