GitKraken Desktop Documentation

Push, Pull, and Fetch in GitKraken Desktop

Last updated: March 2026

Use this page to push, pull, fetch, add remotes, and set upstream branches in GitKraken Desktop when you need to synchronize local branches with a remote. It also explains the available pull behaviors, drag-and-drop shortcuts, and when GitKraken prompts you for remote creation or force-push decisions.

Requirements and limits

  • Workflow scope: Remote synchronization for existing Git repositories in GitKraken Desktop
  • Add remote limitation: Integration dropdowns show forks only; use the URL option for non-fork remotes
  • Push behavior: GitKraken prompts to create a remote branch if one does not exist
  • Force-push warning: GitKraken may offer Force Push when fast-forwarding fails
  • Fetch behavior: Fetch updates remote state without modifying your working directory
  • Pull options: Fast-forward if possible, fast-forward only, and rebase behave differently and should be chosen intentionally per repo workflow

Quick Start

To push local commits: Click Push in the toolbar, or right-click a branch and select Push. If the remote branch does not exist yet, GitKraken Desktop prompts you to create it. You can also drag a branch onto a remote branch to push.

To fetch updates: Click the pull dropdown and select Fetch All to retrieve remote changes without modifying your working directory. Fetching runs automatically each minute by default.

To pull changes: Click Pull in the toolbar. Use the dropdown to choose your preferred pull method:

  • Fast-forward if possible: Merges only if fast-forward fails.
  • Fast-forward only: Takes no action if fast-forward is not possible.
  • Rebase: Replays your commits on top of the updated remote branch.

To add a remote: Hover over Remote in the Left Panel, click the + icon, and enter the URL or select from integration-based dropdowns.

To set an upstream branch: Right-click a branch and select the upstream option. You can also drag and drop a branch onto a remote branch to push without setting the upstream explicitly.


How to add a remote

To add a remote:

  1. Hover over Remote in the Left Panel.
  2. Click the icon.
  3. Enter the remote URL or choose from integration-based dropdowns (GitHub, GitLab, Bitbucket).
Add Remote dialog in GitKraken Desktop with GitHub selected
Add a remote from the Left Panel

Note: Integration dropdowns show forks only. For non-fork remotes, use the URL option.

Remote icons in the Commit Graph:

  • GitHub
  • Bitbucket
  • GitLab
  • Azure DevOps
  • Other

How to push changes

To push local commits to a remote branch:

  • Click Push in the main toolbar
  • Or right-click a branch and select Push
Push button in GitKraken Desktop toolbar
Push a local branch to its upstream

If a remote branch doesn’t exist yet, GitKraken will prompt you to name and create it.

Caution: If fast-forwarding fails, GitKraken may offer a Force Push option. Use with care.

How drag-and-drop push works

Drag a branch onto a remote branch (in the graph or Left Panel) to trigger a push.

GitKraken Desktop showing drag-and-drop to push main branch to origin
Drag to push a branch to a remote

How fetch works

Fetching retrieves updates from remotes but doesn’t change your working directory.

GitKraken Desktop pull dropdown menu showing fetch and pull options, with the fetch option highlighted.
Fetch from the pull dropdown menu

What Fetch All does

Shows how far ahead/behind your branches are compared to the remote.

GitKraken Desktop Left Panel showing branch main is 1 commit behind
Ahead/behind indicators in the Left Panel

Fetching runs automatically every minute. Adjust the interval in Preferences > General.


How pull options work

Pulling performs a fetch and then updates your local branch.

How pull with fast-forward if possible works

Fast-forwards your branch if there are no conflicting commits; otherwise, merges.

GitKraken Desktop commit graph showing fallback to merge when fast-forward pull is not possible
Example: Merge fallback when fast-forward not possible

How pull with fast-forward only works

Attempts to fast-forward. If not possible, no action is taken.

How pull with rebase works

Temporarily stashes your commits, pulls from remote, and replays your changes on top.

GitKraken Desktop commit graph demonstrating linear history using pull-rebase
Rebase keeps commit history linear

How to set the default pull behavior

Select a default pull method via the dropdown menu.

GitKraken Desktop pull menu with option to set default pull behavior
Choose a default pull behavior

How to set an upstream branch

The upstream defines the remote branch a local branch tracks.

  • Right-click a branch to set its upstream
  • Or click the button
GitKraken Desktop context menu with 'Set Upstream' option selected
Set the upstream branch

You can also drag and drop to push instead of explicitly setting the upstream:

GitKraken Desktop interface showing a user pushing a branch to origin/main using drag-and-drop
Push without setting upstream via drag-and-drop
Have feedback about this article? Did we miss something? Let us know!
On this page