I-Rebase is a Visual Studio Code extension that provides an interactive editor for Git rebase operations. The extension allows users to visually reorder, edit, and manage Git commits during an interactive rebase session.
- Interactive Git rebase editor with drag-and-drop functionality
- Visual representation of commits with branches and tags
- Ability to change commit order via drag-and-drop or arrow buttons
- Support for common rebase commands (pick, reword, edit, squash, fixup, drop)
- Integration with VS Code's SCM view
- Conflict detection and visualization
- Commit splitting functionality
- Undo/redo capabilities
- Search functionality
- Keyboard shortcuts support. Arrow keys to navigate, Ctrl+Left/Ctrl-Right to switch action.
- Open a Git repository in VS Code.
- Init a rebase session by manual
git rebase -ior by button on SCM toolbar with macro 50 last commits / or N last commits. - Drag and drop commits to reorder them, or use the command buttons to modify their actions (
Ctrl+Left/Ctrl+Rightwith keyboard). - You may inline edit commit message for "Reword" action.
- You may split commits with multiple files into smaller commits. Set "Edit" action for commit and press on scissors button near commit message.
- Before applying changes you can check for probable conflicts with "Check conflicts" button on toolbar.
- To find commits modifying same files select commit and click "Intersections" button on toolbar - main and dependant commits will be highlighted.
- You may undo / redo operations.
- Save your changes and close window to continue rebase process.
The I-Rebase extension provides the following settings:
irebase.reverseOrder: Show commit list in reverse order (newer higher). Default isfalse.irebase.actionViewKind: View kind of commit actions set. Available options arebuttons(set of buttons) anddropdown(dropdown list). Default isbuttons.
- Git must be installed and accessible from the command line
- VS Code version 1.93.0 or higher
To make VS Code the editor that pops up whenever you run git rebase -i in your terminal, run this command:
git config --global core.editor "code --wait"
MIT

