Sassyブログ

好きなことで暮らしを豊かにするブログ

最初のコミットにgit rebase -iを含める方法

少し前にjser.infoにて取り上げられていたWebContainersを試しています。

クイックスタートのページを見てサンプルプロジェクトを作ってnpm initして~、githubにプッシュして~とやっていたのですが、

チュートリアルのページがあったのでやはりそちらでやろうとしたときにコミットログも少なかったので古いコミットも rebase -i して最初のに含めてチュートリアルで作成したプロジェクトの変更のみにしようとしたところ、

最初のコミットにrebase -iできなかったので「どうやってやるんだっけ」となりやり方を調べてみました。

コミットログはこんな感じになっています。

$ git log
commit 5832dfd2bc23737b614302fxxxxx8396024313a3 (HEAD -> master)
Author: sassy <sassy@sample.com>
Date:   Wed Mar 15 19:08:35 2023 +0900

    feat: webcontainersを試すプロジェクトを作成

|
|
|
省略(中間に2~3コミットあります)
|
|
|

commit 43e8f6e905f46c7d02146f2fxxxxx94746c4c4fc (origin/master)
Author: sassy <sassy@sample.com>
Date:   Wed Mar 15 19:03:28 2023 +0900

f 5832dfd feat: webcontainersを試すプロジェクトを作成
    feat: webcontainersを試すプロジェクトを作成

一番下のが最初のコミットで、こちらをrebase -iに含めたいです。

これを含めるには--rootオプションを付けてあげることで解決できます。

git rebase -i --root

これで現在のブランチが辿れるコミットすべてが表示され、今回でいうと最初のコミットも含まれた状態で表示されます。

この最初のコミットに向けて後続のコミットをfixupしてリベースを行い1つにまとめることができました!