With no
origin remote, all three buttons are disabled, and in a detached HEAD state only push and pull are disabled.The ahead/behind count badges
The Push button carries the ahead count (commits to send); the Pull button carries the behind count (commits to receive).- A badge is hidden when the count is 0, and counts of 100 or more are abbreviated to
99+. - The comparison is against the remote branch from the
branch.<branch>.remotesetting, ororiginif that setting is absent. - For a new branch with no matching remote branch, the behind count is 0, and the ahead count is the number of commits not present on any tracking branch of that remote.
↑N ↓N.

Choosing the remote
In all four modals (Push, Pull, Fetch, and Prune), the remote is an inline dropdown inside the target line, so the place the value is shown is the place you change it. Click the remote name and a searchable list of the repository’s remotes opens.- It appears whenever the repository has at least one remote, even if that’s just
origin. - The starting selection follows the git rule for that operation.
- The list comes from the repository’s configured remotes. A remote you just added is selectable before its first fetch.
The ahead and behind counts are measured against the branch’s tracking remote.
Pick a different remote in the modal and the count disappears from the line.
Push
Upload the current branch, force-push after a rebase, and push tags.
Pull
Receive remote commits with the merge or rebase strategy, and autostash.
Fetch
Retrieve remote state without touching the working tree, and auto-fetch.
Authentication
Push, Pull, Fetch use your system Git credentials as-is (HTTPS tokens, SSH keys, keychain). Without credentials, the operation fails immediately with an authentication error.All three operations time out and abort if they do not finish within 300 seconds.
Clone, which reports progress, follows a looser rule.

