Pull, with the strategy you actually want

Git Navigator's pull button is a split control: the primary action is a one-click pull, and the dropdown reveals three explicit strategies. Rebase against the default branch to keep a long-lived feature on top of main; rebase against the current branch's upstream for a routine sync; or merge if your team prefers merge commits on long-lived integration branches.

Git Navigator showing the pull split button at the top of the commit graph, ready to rebase against the default branch
The pull button names its current target — here, the default branch — so you always know what the next click will do.

Three pull modes, one button

Default-rebase keeps features on top of main

The primary mode (Pull - main) fetches and rebases the current branch onto origin/main. Perfect for long-lived feature branches that need to stay current with the default branch.

Current-rebase syncs the upstream

When your branch already has a remote counterpart that's ahead of you, Pull - {branch} runs git pull --rebase against that upstream. Routine catch-up, no surprises.

Merge for integration branches

Pull (merge) - main brings the default branch in with a merge commit — useful when your team prefers an explicit merge for long-lived integration branches over a rewritten history.

Toggle visible only when there's a choice

On the default branch (main) the dropdown chevron is hidden — there's nothing to choose between. The moment you check out a feature branch, the chevron appears with the three modes ready to pick.

Walkthrough

  1. Step 1 — On a non-default branch — here feature/pull-demo — the pull split button names its current target. The default mode is P
    Step 1. On a non-default branch — here feature/pull-demo — the pull split button names its current target. The default mode is Pull - main: fetch + rebase the current branch onto origin/main.
  2. Step 2 — Clicking the main button runs that exact strategy — no need to open the dropdown if the default is what you want. The la
    Step 2. Clicking the main button runs that exact strategy — no need to open the dropdown if the default is what you want. The label always tells you what the next click will do.
  3. Step 3 — Git Navigator runs git fetch then git rebase origin/main — your feature branch lands on top of the latest default. The g
    Step 3. Git Navigator runs git fetch then git rebase origin/main — your feature branch lands on top of the latest default. The graph re-renders with the new topology in place.

Picking a pull strategy

  1. Check out your branch. The pull split button appears at the top of the graph. On the default branch the chevron is hidden (only one strategy makes sense); on a feature branch the dropdown opens up the three modes.
  2. Default-rebase keeps features fresh. Use Pull - main to fetch and rebase the current branch onto origin/main. A long-lived feature branch stays linear and current.
  3. Current-rebase syncs the upstream. Use Pull - {branch} when your branch has a remote counterpart that's ahead of you and you want a clean fast-forward / rebase.
  4. Merge for integration branches. Use Pull (merge) - main when your team prefers an explicit merge over a rebase. The merge commit shows up in the graph.

Frequently asked questions

Why doesn't the dropdown chevron show on main?

On the default branch there's only one meaningful pull strategy (fetch + integrate the upstream), so Git Navigator hides the toggle to keep the toolbar uncluttered. The split button collapses into a single-click pull. The chevron returns the moment you check out a non-default branch.

What's the difference between Pull - main and Pull (merge) - main?

Both target the same remote branch (origin/main), but the strategy differs: Pull - main runs a fetch + rebase (current branch is replayed on top of origin/main), while Pull (merge) - main runs a fetch + merge (a merge commit lands in your history). Pick rebase for a linear history, merge for an explicit integration record.

Does Git Navigator remember my last-used pull mode?

Within a session, yes — picking a row from the dropdown updates the main button's label and that's what the next click runs. Switching branches resets the default to Pull - {default-branch}.

What happens if pulling produces a conflict?

Git Navigator pauses on its conflict view with every conflicted file listed and block-level keep-ours / keep-theirs / both actions. Once resolved, the rebase or merge continues automatically.

Can I pull from a specific ref that isn't my upstream?

Yes — use the Fetch control next to the pull button. Type any ref (like origin/release/0.0.x), pick Fetch + Rebase, and Git Navigator runs git fetch + git rebase {ref} against your current branch.