Skip to content

Remotes and Syncing

Garrett Speager edited this page Oct 8, 2026 · 4 revisions

Remotes & Syncing

Current Client never contacts a remote on its own — only when you fetch, pull, or push, or ask it to check for updates in the background (off by default; see below).

Remotes panel

Listed in the Nav Pane, each remote shows a friendly host label with per-remote Fetch, Edit, and Remove actions. A Fetch all button appears once you have two or more remotes.

Fetch, pull, push

  • Fetch downloads new commits without touching your working copy or current branch. The header's Fetch button, next to "fetched … ago", fetches all remotes; tick Prune beside it to also remove remote branches that were deleted on the remote. The Prune choice is remembered.
  • Pull brings your current branch up to date using its configured upstream, following your Git pull.rebase setting.
  • Pull with rebase replays your local commits on top of the upstream instead of merging: Shift-click the header's Pull button, or choose Pull (rebase) from the menu beside it or in Quick Switch.
  • Pull (merge), in the same menu and in Quick Switch, merges the upstream into your branch whatever your pull.rebase setting says.
  • Push uploads your commits. If no upstream is set yet, you'll be asked to confirm and it's set for you automatically.
  • All of these can be cancelled mid-operation.

If a remote needs you to sign in, see Signing In to Remotes.

The header's Pull and Push buttons show how many commits you're behind and ahead of your upstream.

If your branch and its upstream have both gained commits and pull.rebase isn't set, Git won't choose how to combine them. Current Client says the branch has diverged and offers Pull (merge) or Pull (rebase).

Force push, safely

Force push uses --force-with-lease, not a raw force push — if someone else has pushed since your last fetch, it refuses and tells you so, rather than silently overwriting their work. Force-pushing always shows a plain, explicit confirmation describing exactly what it will do.

Shift-click the header's Push button to force-push directly. It always goes to your branch's configured upstream, even when that branch has a different name from your local one or is on a remote whose name contains a /.

Background fetching

Off by default. Turn it on in Settings to have Current Client fetch automatically at an interval you choose (5, 15, 30, or 60 minutes).

Common sync errors, explained

  • Pushing with changes you don't have locally is translated into a plain "Pull first" message rather than a raw Git error.
  • Pulling over uncommitted changes that would be overwritten says Uncommitted changes would be overwritten. Commit or stash them first.

Clone this wiki locally