Skip to content

Reading the graph

The middle of the window is your repository’s history as a commit graph: every branch, newest at the top, each in its own colored lane. The top row, // WIP, is your working tree: the changes you haven’t committed yet, joined to the commit you have checked out by a dashed line.

Each row is a commit, under a header of columns: Branch / Tag, Graph, Commit Message, Author, Date and SHA.

  • Drag a column’s edge to resize it; double-click the edge to fit it.
  • Drag a column’s header onto another to reorder them.
  • Right-click the header to show or hide columns, or reset widths and order.

When the window gets narrow, MyTwig drops the author, then the SHA, then the date, so the message always has room.

The graph column shows five lanes. Busy histories with more lanes fade out at the edge, and a commit in a hidden lane is drawn at the edge with a chevron. History loads a page at a time as you scroll, so even huge repositories stay fast.

A commit is drawn as its author’s avatar in a ring, or as a small dot: Settings → Graph → Commits on the graph. Node size (small, medium, large) is in Settings → Graph → Graph nodes, and View → Compact Mode shows as much history as possible.

Avatars come from the author’s account on your forge, then Gravatar. Authors without one get a drawn avatar in the style you choose in Settings → Graph → Avatars, so two authors never look alike at a glance.

Labels sit in the column left of the graph. A computer icon marks a local branch, a cloud a remote one; when a remote branch is at the same commit as its local branch, the two are folded into one label. A remote branch shows its remote’s icon instead of the origin/ prefix: the owner’s avatar, the forge’s logo, or an image you choose (right-click the remote in the left panel). Settings → Graph → Remote branches → Name shows names instead.

If a commit has several labels, the others hide under +N. Hover to see them all.

Labels are live:

  • Double-click a branch label to check it out.
  • Right-click for the branch’s menu.
  • Drag it onto another branch or commit to merge, rebase or open a pull request. See Branch, merge, rebase.

A branch with an open pull request shows the pull request’s icon, colored by its state: open, draft, failing CI (red), approved (green).

Click a commit to see its details: the full message with links, trailers like Co-authored-by, its author and its changed files. Click a file to see its diff.

⌘-click and ⇧-click pick several commits. With the keyboard, J and K move down and up, and ⇧J and ⇧K stay on the same branch.

The scroll bar marks the working tree (red when there are conflicts), HEAD, the commit you chose, search matches and branch tips. Click a mark to jump there.

Diffs are syntax-highlighted in light and dark. From the diff’s bar you can switch between unified and split views, wrap long lines, and ignore whitespace. Words changed within a line are highlighted; Settings → Diff → Highlight within lines changes how. ⌘F inside a diff opens a find bar.

Changed images (PNG, JPEG, GIF, WebP, BMP, TIFF) show as images: side by side, with a swipe slider, or as an onion skin.

⌘F searches the loaded history by message, author, SHA or branch as you type. ⌘G and ⇧⌘G step through matches.

To search the whole history, use operators. Type ? in the search bar for the list:

Operator Finds commits that…
content:foo add or remove the text foo
change:regex change a line matching a regular expression
message:fix have fix in the message
author:mei were written by a matching author
path:src/*.go touch files matching the glob
after:2026-01-01 / before:"2 weeks ago" were made after or before a date

Quote values with spaces. You can combine operators with plain words.

Right-click a branch to Hide it from the graph or Solo it, showing only that branch. This is remembered per repository. ⌥⌘F filters the left panel by name.

⇧⌘H (File History and Blame…), or File History in a file’s menu, shows every commit that changed a file, following renames, with its change in each. Switch to Blame to see the last commit of each line.

To follow a few lines through moves and renames, select them in blame and choose History of Lines, or use Lines… and type a range like 12-30.

Browse Files (a commit’s menu, or All Files in its details) shows the whole tree of files as they were in that commit. Filter by name, compare a file with your working tree, open it, save a copy, or see its history and blame as of that commit.

View → Reflog lists every move of HEAD, newest first. It’s how you find a commit that a reset or rebase dropped. Right-click an entry to create a branch there, check it out, reset to it or cherry-pick it.