Fetch, rebase, or checkout — pick the follow-up

Git Navigator's fetch control is an action picker plus a free-form ref input. Type the ref, pick what to do, hit Go. No second-guessing whether git fetch moved your working tree (it didn't), or remembering the git checkout -b ... --track incantation.

Git Navigator showing the fetch dropdown action picker, ref input, and Go button at the top of the commit graph
The fetch control reads as a sentence: action picker (defaults to Rebase), ref input (origin/main by default), Go button to run it.

Three things you might mean by "fetch"

Type any ref, in any form

The input takes origin/main, origin/feature/x, even just origin when fetching everything. Whatever you'd type after git fetch, type here.

Fetch + Rebase replays your branch

Pick Fetch + Rebase and Git Navigator runs git fetch <remote> then git rebase <ref> for the current branch — the same effect as the pull button's rebase modes, but against any ref you typed.

Fetch + Checkout lands on a new branch

Fetch + Checkout brings in a remote branch and checks it out locally, with the upstream wired automatically. No more git checkout -b feature/x --track origin/feature/x ceremony.

Fetch only updates refs and leaves the tree alone

Fetch only runs a plain git fetch against the remote you typed. Refs and the graph update; your working tree, your branch, your selection — all unchanged.

Walkthrough

  1. Step 1 — The fetch control sits next to the pull button. Three pieces: an action picker on the left (defaulting to Rebase), a ref
    Step 1. The fetch control sits next to the pull button. Three pieces: an action picker on the left (defaulting to Rebase), a ref input in the middle (placeholder shows the action's typical target), and a Go button on the right.
  2. Step 2 — Type the branch name you want to rebase onto — here main to bring the current branch up to date with the remote's defaul
    Step 2. Type the branch name you want to rebase onto — here main to bring the current branch up to date with the remote's default. Git Navigator prepends the remote (origin) automatically, so the input stays terse.
  3. Step 3 — Hit Go and Git Navigator runs git fetch origin then git rebase origin/main on the current branch. The graph re-renders w
    Step 3. Hit Go and Git Navigator runs git fetch origin then git rebase origin/main on the current branch. The graph re-renders with the new history in place.

Fetching, in three flavours

  1. Pick the action. The dropdown on the left of the fetch control picks the follow-up: Rebase, Checkout, or Fetch only. The selection persists until you change it, so a workflow of mostly-rebases stays one click + Enter.
  2. Type the ref. The placeholder hints at the action's typical shape — origin/main for rebase, origin/feature for checkout, origin for fetch only. Type whatever git fetch would accept.
  3. Hit Go (or Enter). Git Navigator runs the underlying git commands. The graph re-renders once the operation finishes; conflicts pause on the conflict view.
  4. Want pull instead?. For the common "bring my branch up to date" case, the pull split button next to fetch is two clicks fewer — same underlying git, no ref to type. Use fetch when you want to target an arbitrary ref.

Frequently asked questions

What's the difference between Fetch + Rebase and the Pull dropdown?

They overlap. Pull - main and Fetch + Rebase against origin/main do the same git operations. The pull button is the shortcut for the two most common targets (the default branch and the current branch's own upstream); the fetch control is the general case for any ref you can name.

Does Fetch + Checkout create the local branch automatically?

Yes. Fetch + Checkout against origin/feature/x creates a local feature/x branch tracking the remote, the same as git checkout -b feature/x --track origin/feature/x. Subsequent pulls / pushes already know the upstream.

Why are there three placeholders in the input?

Each action expects a different shape of ref: a remote branch (origin/main) for Rebase, a remote branch (origin/feature) for Checkout, just a remote (origin) for Fetch only. The placeholder updates as you switch the action so the input always hints at what to type.

Can I fetch from a remote that isn't origin?

Yes — type the remote name in the ref input. upstream/main is a common one when you're working with a fork. The remote has to be configured in .git/config first; Git Navigator runs git fetch against whatever name you give it.

What happens to my working tree on Fetch only?

Nothing changes in the working tree. Fetch only updates remote refs (refs/remotes/origin/*) and the graph, but leaves your branch, selection, and uncommitted changes untouched. It's the safest mode if you just want to see what's landed.