Everything you need to
work git visually
A canvas-rendered commit graph, drag-and-drop operations, and a full working-tree workflow — all backed by your real git.
A lane for every branch
Each branch is drawn in its own coloured lane in a visual DAG, laid out in Rust and painted on canvas so it stays smooth at thousands of commits.
Drag a ref. Pick the move.
Grab any branch ref and drop it onto another. GitLane inspects the two refs and offers exactly the operations that make sense — fast-forward, merge, rebase, or reset — and nothing that doesn’t.
No memorizing flags, no reaching for the docs mid-rebase. The graph animates the result so you can see exactly what happened.
GitLane never does git behind git’s back
Every write — commit, merge, rebase, push, stash — shells out to your actual git binary. Reads use libgit2 for speed, but nothing is ever reimplemented behind your back.
So your hooks fire, your credential helpers run, your commits get signed with your key, and your .gitconfig and conflict machinery all behave exactly as they do on the command line.
PRs across every account
Browse pull requests, diffs, and CI checks through the GitHub CLI, without leaving the graph. Per-repo account binding lets you juggle multiple accounts and hosts at once.
Tokens never leave the Rust core. GitHub is first-class; other forges get clear guidance rather than silent failures.
Never commit with the wrong email
Reusable commit profiles — name, email, signing key — are kept separate from your provider accounts.
So you never accidentally commit to a client repo with a personal address, or push with an unverified signature. Bind a profile per repo and forget about it.
The full working-tree workflow
1 fn reserve_lane(&mut self, id: Oid) -> usize {2- self.lanes.push(id);3- self.lanes.len() - 14+ if let Some(i) = self.free.pop() {5+ self.lanes[i] = Some(id);6+ return i;7+ }8 }
Unified & split diffs · syntax highlighting · stage by hunk or line
Staging workspace
Stage by file, hunk, or line. Amend, reword, and sign — all from one commit panel.
Unified & split diffs
Read changes your way, with syntax highlighting and word-level intraline diffs.
Stash management
Push, pop, and inspect stashes as first-class entries right on the graph.
Git worktrees
Check out multiple branches at once in separate working directories.
Integrated terminal
Drop into a shell in the repo without leaving the window — the graph stays in sync.
Always live
A filesystem watcher syncs the UI when you commit or stage from the terminal. No refresh.
Try the graph you can drag
A ~10 MB native download. Free and open source under GPL-3.0.