IntelliJ parity

Roadmap

Everything the IntelliJ Git client does, and the bar is what Rebased ships as a standalone product: git4idea plus the platform's log, diff and merge. Each tile is a feature, ranked by how much it matters to a day's work, left to right and top to bottom. Glazed tiles are supported. Bisque tiles are fired before 1.0, and the gold seam is where 1.0 gets cut. Hover a tile to see what it is; click it to find it in the log below.

107of 176features supported
  • 107 supported
  • 28 before 1.0
  • 30 after 1.0
  • 11 not planned
  • next up
The glaze, rank 1 to 176
1.0
What 1.0 means. The top 135 tiles, the essential and important tiers, all glazed, and the settings and command IDs frozen. That's 28 to go. Until then the extension stays in preview and a minor version may still rename a porcelain.* setting.
Next up Full grammar coverage in diffs, lazy-loaded · Auto-fetch on an interval, with a last-fetch tooltip · Commit message inspections · Rename following in file history

The log

The same 176 features as a log, in the same order: rank is importance, so everything before 1.0 sits above the seam and everything after it below. One lane per area, a node per feature, and every lane merging into 1.0 before it fans out again. Filled nodes are supported, rings are waiting. Every ring expands into a mock of the feature drawn on the real surface.

Essentialfelt every session
49 of 57 supported
1Commit graph with colour-coded lanes and merge bubblesLog & graph
2Branch tree: local, remote and tags, searchableLog & graph
3Commit tool window with checkbox partial commitsCommit, shelf & stash
4Changed files and details for the selected commitLog & graph
5Porcelain diff viewer: paired gutter, curved connectors, per-side revision headersDiff & merge
6Checkout, and smart checkout when local changes block the switchBranches, tags & remotes
7Push panel with target editing and a commit previewPush, update & fetch
8Update Project: fetch, then merge or rebase, with autostashPush, update & fetch
9Text search with match-case and regex togglesLog & graph
10Branch filter, multi-selectLog & graph
11New branch from HEAD or from a commitBranches, tags & remotes
12Amend, and Commit and PushCommit, shelf & stash
13Side-by-side and unified layoutsDiff & merge
14Editable working-tree side with ⌘S to saveDiff & merge
15Per-hunk and line-range inclusion from the diff gutterCommit, shelf & stash
16Commit context actions: checkout, reset, revert, cherry-pick, dropLog & graph
17Floating diff windows, one reused for every file, pin to keepDiff & merge
18Ahead/behind and incoming/outgoing counts per branchBranches, tags & remotes
193-way merge editor with gutter verbs and an editable resultDiff & merge
20Conflicts window: Accept Yours, Accept Theirs, MergeDiff & merge
21Merge Conflicts group nested in Changes, with a continue/abort bannerCommit, shelf & stash
22Author, date and paths filtersLog & graph
23Go to hash, branch or tag (⌘G)Log & graph
24Collapse linear branches, per fragment and all at onceLog & graph
25Resizable, hideable columnsLog & graph
26FavouritesBranches, tags & remotes
27Update (fast-forward) with upstream awarenessBranches, tags & remotes
28Merge into current, Rebase current ontoBranches, tags & remotes
29Annotate with Git Blame: author and date gutter with a hover cardBlame & file history
30Show File History from the editor or the explorerBlame & file history
31Force push with --force-with-leasePush, update & fetch
32Protected branches refuse force pushPush, update & fetch
33Rollback, with the option to delete added filesCommit, shelf & stash
34Unversioned files groupCommit, shelf & stash
35Directory grouping and multi-selectionCommit, shelf & stash
36Ignore whitespace: four policiesDiff & merge
37Find in a diff (⌘F)Diff & merge
38Next and Previous file (⌘F7 / ⌘⇧F7)Diff & merge
39Multi-root workspaces with a shared active repositoryPlatform
40Syntax highlighting in diffs and merges, six grammarsDiff & merge
44"In N branches" in the details paneLog & graph
45Rebase conflict banner: continue, abort, skipHistory rewriting
46Compare with Current: a branch comparison tab with per-side filtersLog & graph
47Compare Versions between two commitsLog & graph
48Commit message history dropdownCommit, shelf & stash
49Message seeded from commit.template or MERGE_MSGCommit, shelf & stash
50Native diff editor fallback through porcelain.diff.viewerDiff & merge
51Fetch, with porcelain.fetch.tagsPush, update & fetch
52Git Operations popup (⌘⌥G)Platform
Importantweekly
58 of 78 supported
58Interactive rebase editor: pick, reword, edit, squash, fixup, drop, reorderHistory rewriting
59Interactively Rebase from HereHistory rewriting
60Edit Commit Message on any commitHistory rewriting
61Squash N commits under a combined messageHistory rewriting
62Fixup… the working tree into a chosen commitHistory rewriting
63Undo CommitHistory rewriting
64Rebase options: --onto, interactive, autosquash, update-refs, rebase-mergesHistory rewriting
65Merge options: --no-ff, --ff-only, --squash, --no-commit, custom messageHistory rewriting
66Pull options: rebase, ff-only, no-ff, squash, no-commitHistory rewriting
67Multi-commit cherry-pick, oldest first, in one invocationHistory rewriting
68View Git Commands: the exact rebase todo before it runsHistory rewriting
69Guard rails: verbs disabled while an operation is in progress, with the reasonHistory rewriting
70Shelf, IntelliJ-compatible, under .idea/shelfCommit, shelf & stash
71Unshelve: pop, apply, per file, delete; import a patch as a shelfCommit, shelf & stash
72Stash with a message, keep index, include untrackedCommit, shelf & stash
73Stash to branchCommit, shelf & stash
74Sign-off, author override, skip hooksCommit, shelf & stash
75Add to .gitignoreCommit, shelf & stash
76Recent branches from the reflogBranches, tags & remotes
77Reset to upstream on the checked-out branchBranches, tags & remotes
78Delete safety: force-delete names the commits it would discardBranches, tags & remotes
79Tags: create, checkout, push, delete, delete on remoteBranches, tags & remotes
80Annotated tags when a message is givenBranches, tags & remotes
81Manage Remotes: add, rename, re-point, removeBranches, tags & remotes
82Clean Up Branches, merged pre-selected, prefix filter, counted forceBranches, tags & remotes
83Branch grouping by prefix, or a flat listBranches, tags & remotes
84Rename branchBranches, tags & remotes
85Delete branch on remoteBranches, tags & remotes
86Set upstream while pushing, push tags, skip pre-push hooksPush, update & fetch
87Rejected push chooser: merge or rebasePush, update & fetch
88Arrivals list after Update ProjectPush, update & fetch
89Graph modes: Sort Topologically, First Parent Only, No Merge CommitsLog & graph
90Long-edge stubs with jump, and Show Long EdgesLog & graph
91Highlighters: My Commits, Dim Merge Commits, Fade Other BranchesLog & graph
92Presentation: Compact References, Tag Names, Commit TimestampLog & graph
93Date presets and a custom After/Before rangeLog & graph
94Whole-history author list with "(me)" pinnedLog & graph
95Copy Revision Number, Show in Git LogLog & graph
96Blame Options: colour by age or author, name style, ignore whitespace, follow movesBlame & file history
97Uncommitted lines marked as suchBlame & file history
98History Up to Here, Open Repository Version, Show Diff from historyBlame & file history
99Search Commits by message or hashBlame & file history
100Highlight granularity: line, word, character, offDiff & merge
101Collapse unchanged fragments; synchronised scrolling toggleDiff & merge
102Change stripe with click to jump; live difference countDiff & merge
103Diff titles carry position and both revisionsDiff & merge
104Binary and image diffs side by side; large-file placeholder with Show anywayDiff & merge
105Changed-on-disk banner: reload or keepDiff & merge
106Revert or include a hunk from the working-tree diff gutterDiff & merge
107Apply non-conflicting changesDiff & merge
108Resolve automatically for non-overlapping editsDiff & merge
109Accept, accept both, revert to base, ignore, per conflictDiff & merge
110One undo/redo timeline across typed edits and gutter verbsDiff & merge
111Conflict stepping, per-pane find, collapse unchanged in the mergeDiff & merge
112Open in Porcelain Merge Editor from the VS Code Source Control viewDiff & merge
113Worktrees: list, open, create on a new branch, remove, prunePlatform
114Workspace trust: disabled until the folder is trustedPlatform
115Edit Source from any diffPlatform
1.0
Usefulmonthly
0 of 30 supported
Outside parityIntelliJ lacks it, or VS Code already has it
0 of 11 supported
166Bisect, reflog browser, submodules, notesNot plannedPlatform
167ChangelistsNot plannedCommit, shelf & stash
168Staging-area mode (D1)Not plannedCommit, shelf & stash
169Before-commit code checks: reformat, optimize imports, analyze, run testsNot plannedCommit, shelf & stash
170Local HistoryNot plannedCommit, shelf & stash
171External diff and merge toolsNot plannedDiff & merge
172Directory diff and combined all-in-one diffNot plannedDiff & merge
173Clone and init dialogsNot plannedPlatform
174GitHub, GitLab and Space integrationNot plannedPlatform
175Terminal completion, code-vision authorship, log indexingNot plannedPlatform
176Committed-changes and Incoming tabsNot plannedLog & graph

How things get on this page

The tiers are my judgement of how often a feature is felt in a day's work, so the order will move as I use the thing. I build what I actually use, and the seam exists so the long tail can never hold up 1.0. The last tier is outside the bar on purpose: features IntelliJ itself lacks, or that VS Code already provides, count as parity by integration rather than by rebuilding. If there is something in IntelliJ's Git you use every week and it's ranked too low, open an issue and say what it's for.