Git Interactive Rebase GUI Tool

A lightweight visual Git interactive rebase GUI built with PySide6. Reorder, squash, split, rephrase, drop, and refine commit history while using native Git commands underneath. Designed for cleaning up commit history before raising a PR.

âœĻ Git Rebase Features

🛠ïļ

Visual Interactive Rebase

Drag and drop commits to reorder history. Squash, rephrase, drop, and manage interactive rebase actions with a clean visual workflow. In multi-select mode, tick several commits to squash, mark, drop, or drag a contiguous block to reorder them all at once.

🔍

Search, Filter, and Inspect

Search commits by SHA or message, inspect commit details, and navigate history quickly using keyboard shortcuts.

📚

Browse Reflog, Stashes & Any Commit

Open read-only windows for the HEAD reflog, the stash list, any other branch, or a single commit by SHA. Copy SHAs, show commit logs, and apply, drop, or keep stashes with confirmation — all from the Repo menu.

ðŸŽĻ

Dark and Light Themes

Adaptive dark and light themes with persistent settings for a smoother Git workflow.

⚡

Split, Squash, and Cleanup

Split commits, squash related changes, rephrase messages, and organize history before creating pull requests.

✂ïļ

Refine Changes in File

Selectively keep, drop, edit, or move specific changes/hunks to separate commits — ideal for cleaning up mixed commits before a PR.

🔧

Built on Native Git

Uses the standard Git CLI underneath for all operations. Lightweight, transparent, and automatically benefits from future Git improvements.

ðŸĪ” Why This Tool?

ðŸŽŊ

Focused Rebase Workflow

Unlike full Git clients, this tool focuses specifically on interactive rebase workflows: reorder, squash, split, rephrase, refine changes, and clean up history before PR creation.

⚙ïļ

Uses Native Git

All operations are executed using the standard Git CLI itself. No custom Git implementation or hidden logic.

ðŸŠķ

Lightweight Setup

No bulky installation or large Git client required. Simple Python-based setup that works across platforms.

🚀 Quick Start

# Install via pip
pip install git+https://github.com/shyjun/git-interactive-rebase-gui-tool.git

# Run the app
git_interactive_rebase

Or clone the repository for the latest development version:

# Clone and run
git clone https://github.com/shyjun/git-interactive-rebase-gui-tool.git
cd git-interactive-rebase-gui-tool
pip install PySide6
python3 git_interactive_rebase.py