Skip to main content
Double-click in the graph to switch to a branch, tag, or commit. If you have uncommitted changes, choose how to handle them in a modal.
The branch checkout dialog, showing the target branch and the choice of how to handle local changes: Don't change, Stash and reapply, or Discard

Double-click to check out from the graph

What you double-click determines the target. One chip covers every place a branch lives. feature is a single chip whether it exists locally, on origin, or on both.
  • Branch chip with a laptop icon → that local branch
  • Branch chip without one → a new local branch is created tracking origin, or the first remote in name order if the branch isn’t on origin
  • Tag chip → that tag (detached HEAD)
  • Commit body → automatically picks, in order, local main/master → other local branches → a remote branch → a tag; if no ref matches, it checks out detached at the commit SHA
A single click only selects; switching happens on double-click.
Naming the remote is what makes a fork workflow work. When both origin and upstream carry feature and you have no local copy, plain git checkout feature refuses the ambiguity. Double-clicking the chip picks one for you (origin when it’s there) and checks out with --track against it. To track upstream instead, check out from its Remote Branches row in the left repository panel, or fix it afterwards with Set tracking branch….
A stash node is the exception. Double-clicking one in the graph applies that stash immediately. See Stash.

Checkout modal (handling local changes)

If the working tree is clean, it switches immediately with no modal. If you have uncommitted changes, choose how to handle them.

Don't change

Leaves your changes in place and switches to the target. Git blocks the switch if that would cause a conflict.

Stash and reapply

Stashes your changes, switches, then reapplies the stash. This is the default.

Discard

Discards your changes and switches. This cannot be undone.

Automatic fast-forward pull on checkout

When you check out a local branch that tracks an upstream, it fast-forwards to match the remote in the background right after the switch.
  • The checkout finishes immediately, and the pull runs afterward.
  • If a fast-forward isn’t possible or the network or authentication fails, it leaves the branch untouched and only shows a warning toast. It never creates a merge or a conflict.
It’s on by default, and you can turn it off with the Auto fast-forward on checkout toggle in Settings → ParalleLane → Git.
You can also trigger it on demand: double-click the <remote>/<branch> row of the branch you already have checked out, under Remote Branches in the Repository panel. With nothing to switch to, it runs this fast-forward pull from that remote (regardless of the toggle). It’s skipped with a notification when the working tree has changes to tracked files, which a fast-forward would move along with HEAD. Untracked files (a stray build output, say) don’t block it.
When local and remote have each moved on, a fast-forward isn’t possible, and the message says so and points you at Pull to choose merge or rebase.
For a pull that needs a merge, use the Pull dialog in Push, Pull, Fetch.

A branch another worktree is using

Git won’t let two worktrees use the same branch at the same time. In that case, a Switch to another worktree confirmation modal appears, showing the target branch and the worktree that has it checked out; click Switch to move to that worktree. It doesn’t touch the current worktree. It isn’t recorded in Undo either.
The switch confirmation dialog that appears when the target branch is already checked out in another worktree, showing the branch and the name of the worktree using it, with the Cancel and Switch buttons