Remote sync
Fetch, Pull, and Push are always in the top toolbar, and the single-key shortcuts f, p, and u trigger them too (not inside text fields, editors, or dialogs). When there is nothing to pull or push, Fox Git just tells you — the buttons never hide.
Pull
Before pulling, Fox Git fetches the upstream's remote and previews ahead / behind, the commits to pull and push, whether you have uncommitted changes, and files where remote commits overlap your local changes.
- Already up to date: just a notice.
- Fast-forward possible with no overlap: pulls directly; local changes are stashed and restored automatically.
- Diverged or overlapping: opens the sync dialog listing both sides' commits so you choose rebase or merge. The default follows the repository's
pull.rebasesetting.
Push and publishing branches
- If the current branch has no upstream, Push publishes it and sets the upstream.
- If the remote has commits you do not have locally, a dialog lets you pull first or switch to a force push.
- Otherwise it pushes and tells you how many commits went out.
Force Push with Lease
Choose Force Push with Lease from the command palette. The dialog lists the remote commits you would lose and the commits you would push. Fox Git uses ls-remote to check whether the remote branch changed after your last fetch; if it did, the push is blocked so you do not overwrite something a teammate just pushed.
Credential prompts
Fox Git sets GIT_ASKPASS and SSH_ASKPASS for every Git process, pointing at Fox Git itself. When Git or SSH needs a username, password, token, or passphrase, an in-app prompt appears, with sensitive input masked. Cancelling, or five minutes without input, counts as a cancel.
Fox Git never stores or logs what you type into the prompt. To remember credentials, use a system Git credential helper (such as the macOS keychain or Git Credential Manager) or an SSH agent.
Conflicts
When a rebase or merge pauses on conflicts, a banner appears at the top of the workbench — see Conflict resolution.