Git Log

The Porcelain panel is IntelliJ's Git tool window: branch tree on the left, the graph in the middle, and the changed files and details of the selected commit on the right. Every column can be resized or hidden, and the whole panel drags to the side or maximises like any other VS Code panel.

The graph

Toolbar

ControlDoes
SearchFilters by message, literal and case-insensitive by default. The Cc toggle matches case; .* treats the text as a regular expression.
BranchMulti-select. The dropdown stays open while you tick branches, and the log shows the union of everything reachable from them. A plain click in the branch tree replaces the filter with that one ref.
UserEvery author in the repository, most commits first, with your configured user.name pinned to the top as "(me)".
DateToday, last 7, 30 or 90 days, or a custom After/Before pair, sent to git as inclusive day bounds.
PathsOne pathspec per line. Narrows the log to commits touching those files or folders. Show File History from an editor adds a file-history chip here.
Go toG. Branch and tag completion; free text resolves as a full or abbreviated hash. The log navigates there and clears any filter that would've hidden it.
View OptionsThe eye. Graph modes, highlighters, presentation and columns, below.
The Branch filter dropdown open over the log: a Select branches field, All branches, then every local and remote branch with a checkbox, main ticked.
The Branch filter stays open while you tick branches. The log shows the union.
The Go to popup over the log with v0. typed, listing the tags v0.1.0, v0.2.0 and v0.3.0 with v0.1.0 highlighted.
Go to (G) filters branches and tags as you type; free text resolves as a hash.

View Options

GroupOptions
GraphSort Topologically, First Parent Only, No Merge Commits, Show Long Edges, and the collapse and expand actions. These map to --topo-order, --first-parent and --no-merges.
HighlightMy Commits emphasises commits by your configured user.name. Dim Merge Commits. Fade Other Branches is the reachability dimming, now toggleable. All persisted.
PresentationCompact References, Tag Names on or off, and Commit Timestamp to show the committer date in place of the author date.
ColumnsAuthor, Date and Hash can each be hidden. Widths are dragged and remembered.
The Porcelain panel maximised with the View Options menu open: Columns with Author, Date and Hash ticked; Graph with Sort Topologically, First Parent Only, No Merge Commits, Show Long Edges, Collapse and Expand Linear Branches; Presentation with Compact References, Tag Names ticked, Commit Timestamp; Highlight below.
View Options, with the panel maximised. Everything in it persists.

The details pane

Selecting one commit shows its changed files, grouped by directory, and below them the full message, author, date, the ref chips, and In N branches: which local and remote branches contain it, loaded lazily, with Show all and Hide. Double-clicking a file opens its diff. The file context menu adds Show Diff, Open Repository Version, History Up to Here, Edit Source, Revert Selected Changes, Cherry-Pick Selected Changes, and Copy Path and Copy File Name.

Commit context menu

ItemDoes
Checkout RevisionDetached HEAD at the commit.
Reset Current Branch to Here (Soft / Mixed / Hard)…The three resets, each with a confirmation.
Revert Commit · Drop CommitRevert creates the inverse commit. Drop rewrites it out of the branch.
Cherry-Pick · Cherry-Pick N CommitsA multi-selection is applied oldest first in one invocation, so a stop mid-sequence lands in the same continue/abort/skip banner.
Interactively Rebase from Here… · Edit Commit Message… · Squash N Commits… · Fixup… · Undo CommitThe rewriting verbs. See Rewriting history.
Compare VersionsWith two commits selected: everything that differs between the two snapshots, always read oldest to newest whichever order you selected them in, so work that was added and later reverted between them correctly shows as no change.
New Branch… · New Tag…From the commit. A tag with a message is annotated.
Copy Revision Number · Show in Git LogCopies the hash; navigates a comparison log back to the main log.
The commit list with two commits highlighted and the context menu open. Compare Versions is highlighted; the single-commit actions are greyed out.
With two commits selected the single-commit verbs grey out, because the row you happened to right-click isn't an obvious target for a reset.

Compare with Current

Right-click a local branch, remote branch or tag and choose Compare with Current. Porcelain opens a dedicated editor tab with the commits unique to each side, independent filters per side, and the same changed-files and details panes. The commit context actions work there too.

A Compare: feature/webhooks ↔ main editor tab. The top half lists the two commits in feature/webhooks not in main, the bottom half the three commits in main not in feature/webhooks, each with its own filters, changed files and details.
Compare with Current: each side has its own filter row, changed files and details.