Sync
Sync actions live next to the commit composer. All of them run git in the repository’s worktree and report their output in Git Output.
Fetch
- Fetch updates remote-tracking refs for the default remote.
- Fetch a specific remote from its row in the remotes panel.
- Tags are fetched on request, not silently on every fetch.
- Fetch never changes the working tree or the current branch.
Auto-fetch can run on an interval (Settings → Git → Auto-fetch, 0 to 240 minutes, 0 disables it). The interval is per installation, and the status bar shows when the repository was last fetched.
Pull
The pull mode is a single setting with three values:
| Mode | Command shape |
|---|---|
| Merge | git pull with the configured merge behaviour |
| Rebase | git pull --rebase |
| Fast-forward only | git pull --ff-only |
Pull requires an upstream. If the current branch has none, the sync bar offers the same set-upstream path as push instead of failing with a raw Git error.
Pull from… pulls an arbitrary remote branch into the current branch, which is useful for reviewing a colleague’s branch without creating a local tracking branch first.
A pull that stops on conflicts stays in the workbench banner and opens the conflict resolver.
Push
| Action | What it does |
|---|---|
| Push | Pushes the current branch to its upstream, setting it on first push |
| Push to remote | Pushes to an explicit remote |
| Push as | Pushes HEAD to a remote branch with a different name |
| Force push (with lease) | Pushes with --force-with-lease, after writing a recovery snapshot of the remote-tracking tip |
| Set / unset upstream | Writes or removes the branch’s upstream configuration |
Force-with-lease is the only force mode. It refuses to overwrite a remote branch that moved since your last fetch, which is exactly the case where a bare --force destroys someone else’s work. The snapshot it writes first covers the remote-tracking tip, so the overwritten state can be inspected and exported afterwards.
Long sync operations can be cancelled. Cancellation is reported as a cancellation, not as a failure.
The push preflight
Every outbound push runs a local scan before Git connects to the remote. The scan looks only at local objects — no fetch, no ls-remote, no forge call — and it is bounded so a large repository cannot stall it.
It reports three severities:
| Severity | Example | What is required |
|---|---|---|
| Private key material | A committed key file or a key block in a diff | The push is blocked; it cannot be confirmed away |
| Blocking | A secret-shaped assignment, a credential file | Type the confirmation phrase before the push proceeds |
| Warning | A newly added large file, a conflict marker, a suspicious string | Accept the warnings explicitly |
The scan covers the commits, files and tags that the push would publish, with caps of 5000 commits, 20000 files and 200 reported issues. The approval is bound to the resolved target and the scanned tip, so changing the target, the branch or the content invalidates it and the scan runs again.
The large-file threshold is configurable in Settings (default 10 MB) and is skipped for LFS-tracked paths. The preflight is a local heuristic, not a secret scanner: it reduces the chance of publishing a key, and it does not guarantee that a push is safe.
Bulk operations
The workspace dashboard can fetch or pull a selection of repositories in one action. The result is a per-repository report: succeeded, failed with the Git error, or skipped with a reason (dirty working tree, diverged, no upstream, unborn branch, detached HEAD, bare repository). Nothing is retried automatically.
What sync does not do
- It does not stash or commit your changes to make a pull succeed.
- It does not rewrite a branch except through the explicit force-with-lease action.
- It does not store remote credentials. Authentication is delegated to the system
git, so credential helpers and SSH configuration behave as in a terminal.
Next
- Workspace — dashboard, activity feed, code search.
- Forge — pull requests and merges on the hosting provider.
- Troubleshooting — authentication and lock problems.