Repository navigation
Remotes and 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).
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 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.rebasesetting. - 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.rebasesetting 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 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 /.
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).
- 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.
Getting started
Everyday work
- Working Copy & Staging
- The Diff Viewer
- Committing Changes
- Branches
- Remotes & Syncing
- Signing In to Remotes
- Worktrees & Submodules
- Search in Files
History
When things go wrong
Insights
Configuration