Reflog — scoped how you want it, expanded when you need it

The reflog is your safety net for everything Git history pretends never happened. Git Navigator puts it in the same Stash + History overlay as the rest of your repo movement, scoped to the active worktree by default, expandable to every worktree with one toggle, and inline-expandable to a diff per entry.

Git Navigator showing the Recent History section of the Stash + History overlay, scoped to the active worktree
The Recent History section lives in the same overlay as Stash, with a scope toggle at the top to flip between the active worktree and all worktrees.

Reflog without the command-line

Scoped to the active worktree by default

Most of the time you only want the reflog for the checkout you're looking at. The default scope keeps the list focused; the toggle is one click away when you actually need everything.

All-worktrees view with source badges

Flip the scope to All worktrees and the same list grows a per-row source badge so you can tell which worktree each entry came from. Useful when you're hunting "where did that commit go?" across multiple checkouts.

Expand inline for the diff

Every reflog row carries an expand chevron. Open it and you get the commit metadata plus the per-file diff — no separate page, no git show in another window. Close it when you're done; the rest of the overlay stays put.

Checkout direct from a row

Each row has a Checkout button that moves HEAD straight to that commit on the active worktree, so reflog acts as a one-click time machine when you need to recover from a misstep.

Walkthrough

  1. Step 1 — Open More → Stash + History and the Recent History section lists the active worktree's reflog. Default scope is Active w
    Step 1. Open More → Stash + History and the Recent History section lists the active worktree's reflog. Default scope is Active worktree — every row is a HEAD movement on the currently-active checkout (the slogx main worktree here).
  2. Step 2 — The scope toggle at the top of the section is a two-button tab strip — Active worktree on the left, All worktrees on the
    Step 2. The scope toggle at the top of the section is a two-button tab strip — Active worktree on the left, All worktrees on the right. The active state is what you see; click the other to switch.
  3. Step 3 — Each row carries the commit hash, the reflog action(s) — HEAD@{0}, HEAD@{1}, … — the reflog message, the date, and a Che
    Step 3. Each row carries the commit hash, the reflog action(s) — HEAD@{0}, HEAD@{1}, … — the reflog message, the date, and a Checkout button that moves HEAD straight back to that commit.

Reading the reflog in Git Navigator

  1. Open Stash + History. More → Stash + History. The same overlay holds both the stash list and the Recent History section that drives reflog.
  2. Pick a scope. Default scope is the active worktree. Flip the tab strip to All worktrees to merge every linked worktree's reflog into one chronological list, with per-row source badges.
  3. Expand for the diff. Every row has an expand chevron. Click it to load the commit metadata and the file list inline; click any file to load its diff in place.
  4. Checkout to time-travel back. Each row carries a Checkout button. Click it and HEAD on the active worktree moves to that commit — your safety net when something disappeared from history.

Frequently asked questions

How is this different from git reflog on the command line?

git reflog prints text. Git Navigator renders the same list as expandable rows: per-row commit metadata, per-file diffs, a Checkout button to move HEAD directly. The scope toggle also makes "show every worktree at once" one click rather than per-worktree git -C path reflog invocations.

Why is the default scope just the active worktree?

Because that's usually the only reflog you care about — the worktree you're looking at. The All worktrees view is the right tool for the rarer hunt for "where did a commit go" across multiple linked checkouts, but in the common case the active-only scope keeps the list short.

What does the inline expand actually show?

The first click loads the commit metadata (author, date, parents, message body) and the list of files the commit touched. Each file row is itself expandable into the diff for that file. Everything renders inline — the overlay stays open, the scope toggle stays at the top, and the Checkout button on the row stays one click away.

Can I check out a commit from a reflog entry?

Yes. Each row carries a Checkout button that moves HEAD on the active worktree to that commit. The graph re-renders around the new HEAD, and the reflog grows a new entry recording the checkout — so the time machine has a return ticket.

Does the reflog see commits from worktrees that have been removed?

Yes, while their reflog files exist. Git keeps each worktree's reflog under .git/worktrees/<name>/logs/HEAD; deleting the worktree removes the file, but until then the All worktrees view picks it up so you can recover work from a worktree you're about to delete.