Skip to content
Download

DOCS / GIT

History

The History tab is a filterable commit list with an optional graph, ref chips for branches and tags, and signature glyphs for signed commits. It is also where the safe history rewrites live: undo the last commit, reword a message, cherry-pick — including a keyboard-only cherry-pick with copy and paste.

The filter box (Filter commits by message, SHA, author…) narrows the list by matching the commit subject, its SHA (short or full), or the author name. The tab loads the most recent 100 commits.

Each row shows the short SHA, a signature glyph when the commit is signed, the commit’s ref chips, the subject, author, and date.

The Graph toggle switches from the linear list to a commit graph with the same rows rendered beside it — selection stays in lockstep between the graph and the text column. Graph mode adds a Load more button that extends the graph by another 100 commits at a time.

The two modes deliberately offer different context menus:

ActionLinear listGraph
Undo last commit…
Reword message…
Cherry-pick to…

Signature glyphs are also shown in the linear list only.

Branch, tag, and HEAD decorations render as chips on their commit’s row. A commit with up to four refs shows them all; five or more collapse to three chips plus a +N overflow chip whose tooltip lists the hidden refs (the overflow always hides at least two, so a row is never collapsed just to trade one chip for a “+1”).

In the linear list, signed commits carry a glyph derived from git’s signature check; hover it for the exact status:

GlyphMeaning
Good signature (including “unknown validity” and expired-key variants)
Problem — bad signature, revoked key, or the signature could not be checked

Unsigned commits show nothing. To sign your own commits, see Git identity & signing.

Selecting a commit opens its changed files in a panel below the list. Clicking a file shows its diff in the diff viewer; right-clicking offers Show file history…, which jumps to that file’s own history window — one of the power tools, alongside blame.

Both rewrites live in the linear list’s context menu and guard against touching published history.

Undo last commit… is available only on the newest commit. It runs git reset --soft HEAD~1: the commit disappears and its changes return to the Changes tab, still staged, ready to re-commit. The confirmation dialog warns you when the commit is already on the remote — undoing it then leaves your branch diverged, and pushing will require a force push with lease.

Reword message… rewrites a commit’s message. Birch refuses outright if the commit is already on the remote (“Can’t reword a commit that’s already on the remote.”) — rewording published history would force every collaborator to reconcile. For deeper rewrites (squash, reorder, drop), see Interactive rebase.

Cherry-pick to… (available in both list and graph mode) opens a target picker listing the repository’s open worktrees. Pick one and Cherry-pick here, or use Open a new worktree… to create a target on the spot. If the pick conflicts, the conflict resolver opens automatically.

With focus in the history list:

  • ⌘C / Ctrl+C copies the selected commit’s full SHA to the clipboard.
  • ⌘V / Ctrl+V cherry-picks the clipboard SHA onto the current worktree’s HEAD.

The paste is guarded — it only fires when the clipboard holds something shaped like a SHA (7–40 hex characters), so pasting arbitrary text does nothing. Copy in one worktree’s history, switch, paste in another: a two-keystroke port of a commit between branches. See Keyboard shortcuts.