各種JetBrains IDE上でも、git rebase -i(--interactive)を行うことができます。
公式ドキュメントはこちら。
Beforeのような履歴を、Afterのような履歴に編集する例を示します。
| Before | After |
|---|---|
![]() |
![]() |
具体的には、
- コミットメッセージが「moveme to first」なコミットを並び変えて、先頭へ来るようにする(「init project」の後へ来るようにする)
- 以下の3個のコミットをsquashして一つにまとめる(squashする)
- コミットメッセージが「added comment0」
- コミットメッセージが「added comment1」
- コミットメッセージが「added comment2」
- コミットメッセージが「removeme this commit」なコミットを取り除く(dropする)
という編集を行います。
Gitウィンドウ(Version Controlウィンドウ)のLogタブを開きます。
- macOS : ⌘Cmd + 9
- Windows : Alt + 9
編集する一番古いコミット、今回はコミットメッセージが「added comment0」のコミットを右クリックし、出てくるメニューの「Interactively Rebase from Here...」を選択します。
次の様なウィンドウが開きます。
まずは、
- コミットメッセージが「moveme to first」なコミットを並び変えて、先頭へ来るようにする(「init project」の後へ来るようにする)
を行います。ウィンドウの左上、下図の赤枠で囲ったボタンを押してコミットの順番を並び替えます。

3回押すと一番上に来て、並び替えるコミットの中で先頭に来ます。
次は
- 以下の3個のコミットをsquashして一つにまとめる
- コミットメッセージが「added comment0」
- コミットメッセージが「added comment1」
- コミットメッセージが「added comment2」
を行います。
コミットメッセージが「added comment1」のコミットを右クリックし、出てくるメニューから「Squash」を選択します。
Squash後のコミットメッセージを編集します。
コミットメッセージが「added comment2」のコミットにも同じ操作を行います。
- コミットメッセージが「removeme this commit」なコミットを取り除く(dropする)
を行います。
コミットメッセージが「removeme this commit」のコミットを右クリックし、出てくるメニューから「Drop」を選択します。
すると下図の様な状態になります。これで、
- コミットメッセージが「moveme to first」なコミットを並び変えて、「init project」の後に来るようにする
- 以下の3個のコミットをsquashして一つにまとめる(squashする)
- コミットメッセージが「added comment0」
- コミットメッセージが「added comment1」
- コミットメッセージが「added comment2」
- コミットメッセージが「removeme this commit」なコミットを取り除く(dropする)
という編集を行う準備ができました。下図の赤枠で囲った「Start Rebasing」を行なって、rebaseを行います。
なお、場合によってはconflictが発生するので修正してください。
この操作により、Beforeのような履歴を、Afterのような履歴に編集できました。
| Before | After |
|---|---|
![]() |
![]() |










