Branches, tags & remotes

The branch tree on the left of the Git Log is IntelliJ's branch popup, kept open. It's searchable, and each section collapses.

What's in the tree

Each local branch shows ahead/behind against its upstream, plus incoming/outgoing counts read from the refs the last fetch brought in, so they cost no network round-trip. The tree's own toolbar has New Branch, Update Selected, Delete Branch, Fetch, Mark as Favourite, Navigate Log to Selected Ref Head, Flatten List, and the gear. The gear menu chooses what a single click does (Update Branch Filter or Navigate Log to Ref Head), toggles Show Tags, and opens Clean Up Branches… and Manage Remotes….

The branch pane gear menu open: On single click with Update Branch Filter ticked and Navigate Log to Ref Head, Show Tags ticked, then Clean Up Branches… and Manage Remotes….
The gear menu on the branch pane.

Context menu on a branch

ItemDoes
CheckoutSwitches. When local changes would block the switch, Porcelain offers the smart checkout: stash, switch, restore.
UpdateFast-forwards from the tracked branch. Disabled, with the reason, when there's no upstream.
Push…Opens the push panel targeting this branch.
Merge '…' into current · Rebase current onto '…' · Checkout and Rebase onto currentThe three ways of bringing two branches together. Merge and rebase take options; see Rewriting history.
Compare with CurrentThe comparison tab.
New Branch from '…'Name, checkout, and overwrite if the name is taken. Names go through git check-ref-format before anything runs.
RenameLocal branches.
DeleteA branch with unmerged commits is refused first; the force option names the commits it would discard, and counts them.
Delete on RemoteFor remote branches.
Reset to upstreamOn the checked-out branch only: drop local commits to match the tracked branch, with confirmation.
Mark / Unmark as FavouriteStar it.
The context menu on feature/webhooks: Mark as Favorite, Checkout, New Branch from feature/webhooks…, Compare with Current, Checkout and Rebase onto main, Rebase main onto feature/webhooks, Merge feature/webhooks into main, Rename…, Delete, Update greyed out, Push….
The branch context menu. Update is greyed because feature/webhooks has no upstream, and the menu says so on hover.

Tags

Checkout Tag, Push Tag, Delete Tag and Delete Tag on Remote. The two remote-bound items are disabled when the repository has no remote. New tags come from a commit's context menu in the log; give the tag a message and it's annotated.

Manage Remotes

From the branch pane's gear menu: a Name/URL table for adding, renaming, re-pointing and removing remotes. Names and URLs that look like git options are rejected before they reach the command line. Every remote reference in Porcelain resolves through the default remote or the branch's upstream, so a repository whose remote isn't called origin works the same.

The Manage Remotes dialog over the log: a table with one row, origin and its URL, with Edit and Remove buttons, and Add Remote and Done below.
Manage Remotes.

Clean Up Branches

Also in the gear menu: a table of local branches with last-commit date, tracked branch and merge status, filtered by a directory-style prefix. Merged branches are pre-selected. Unmerged ones are only ever deleted with an explicit, counted force.

The Clean Up Branches dialog: a Filter by prefix field, and a table of five local branches with last commit date, tracked branch and merge status. The three merged branches are ticked; the button reads Delete 3.
Clean Up Branches: merged branches pre-selected, the button counts what it will delete.