GitKraken Desktop Documentation

Branch, Merge, and Rebase in GitKraken Desktop

Last updated: March 2026

Learn how to branch, merge, and rebase in GitKraken Desktop.

Looking for a quick summary? See how GitKraken solves merge conflicts.


Quick Start

Use GitKraken Desktop to create branches, merge changes, and rebase commits without leaving the application.

To create and check out a branch:

  1. Right-click any commit in the graph and select Create branch here.
  2. Enter a branch name and press Enter.
  3. Double-click the branch label in the graph or Left Panel to check it out.

To merge a branch:

  1. Check out the branch you want to merge into.
  2. Right-click the source branch in the Left Panel and select Merge, or drag and drop it onto the target branch.
  3. If conflicts occur, click a conflicted file in the Commit Panel to open the Merge Tool. Select lines from each side, save the output, and commit.

To rebase:

  1. Drag the source branch onto the target branch and select Rebase.
  2. Resolve any conflicts if prompted, then confirm.

To delete a branch, first check out a different branch, then right-click the target branch and select Delete. Use Shift or Cmd/Ctrl in the Left Panel to select and delete multiple branches at once.


Branches

Create a new branch when working on a feature or fix. Right-click any commit to open the context menu and create a branch.

Right-click menu in GitKraken Desktop showing option to create a new branch from a selected commit
Create a branch by right-clicking on a commit

A branch is a pointer to a specific commit, allowing you to isolate changes from the main codebase. Consider adopting GitFlow for structured branching strategies.

Checkout a Branch

Branch checkout updates files in the working directory to reflect the version defined by that branch.

To update your working directory:

  • Double-click a branch label from the Commit Graph or the Left Panel
  • Right-click a branch from the Commit Graph or the Left Panel and select Checkout
Animated view of creating and checking out a new branch in GitKraken Desktop from the right-click context menu on a commit
Creating and checking out a new branch

If you’re on the wrong branch, stash your changes, switch branches, and pop the stash.

If you only need a subset of files checked out, see Sparse Checkout.

Rename a Branch

Right-click the branch label or use the Left Panel to rename the current branch.

Context menu in GitKraken Desktop with the Rename branch option selected for the branch 'branch-rename'
Rename a branch from the graph or Left Panel

You can also rename using the Command Palette (Cmd+P / Ctrl+P):

Command Palette in GitKraken Desktop showing filtered results for 'Rename Branch'
Search for “Rename Branch” in Command Palette

Delete a Branch

To delete a branch:

  1. Switch to another branch
  2. Right-click the branch you wish to delete

Use multi-select in the Left Panel to delete several branches at once:

  • Shift to select a range
  • / Ctrl to select specific branches
Confirmation prompt for deleting multiple local branches in GitKraken Desktop
Select and delete multiple branches

Caution: Deleting a branch is permanent.

Pin branch to the left

Pinning a branch fixes it to the left side of the Commit Graph so that its direct commit history always appears on the left. This is particularly useful for long-lived branches like main or a production branch, where you want a stable reference point to see how other branches merge into it.

To pin a branch:

  1. Right-click a branch label in the Commit Graph or the Left Panel.
  2. Select Pin to left.
Right-click context menu on a branch in the GitKraken Desktop Commit Graph with the 'Pin to Left' option visible at the bottom of the menu
Select “Pin to Left” from the branch context menu

To unpin a branch, right-click the branch label again and select Unpin from left.

Smart Branches

Smart Branch Visibility reduces visual noise in the Commit Graph by displaying only the branches most relevant to your current work. When enabled, the graph shows only your checked-out branch, its target branch, and their respective upstream branches — hiding all others.

This is especially useful in repositories with a large number of branches where the full graph can be difficult to navigate.

To enable Smart Branch Visibility:

  1. Click the gear icon in the top-right corner of the Commit Graph header.
  2. Select Smart Branch Visibility.
GitKraken Desktop Commit Graph with Smart Branch Visibility enabled, showing a filtered branch list in the Left Panel and the column settings dropdown with the Smart Branch Visibility option checked
Enable Smart Branch Visibility from the Commit Graph column settings

Smart Branch Visibility activates on your currently checked-out branch. To disable it, follow the same steps and deselect Smart Branch Visibility.


Merging

Merging combines changes from one branch into another. To merge:

  • Drag and drop one branch onto your target branch
  • Or right-click the source branch and choose Merge
Context menu showing option to merge dev branch into production branch in GitKraken Desktop
Merge via drag-and-drop or right-click

If no conflicts exist, changes will be merged automatically.

The in-app merge conflict output editor is available with a Paid license.

Squash merges

When you enable the Squash setting, GitKraken Desktop stages all changes from the source branch locally without creating a merge commit automatically. You then commit the squashed result manually, which produces a single, clean commit on the target branch.

This is useful when you want to maintain a linear history on your main branch without preserving the individual commits from a feature branch.

To enable squash merges:

  1. Go to Preferences > Commit.
  2. Enable the Squash toggle.
GitKraken Desktop Preferences panel open to the Commit section, with the Merge Behavior area highlighted showing the Squash checkbox and its description: 'When enabled, merging branches locally will stage all changes without creating a merge commit automatically. You will need to commit manually.'
Enable the Squash toggle under Preferences > Commit > Merge Behavior

After merging with squash enabled, review the staged changes in the Commit Panel and commit them manually.

Note: With squash enabled, GitKraken Desktop stages all changes but does not create the merge commit for you. You must commit manually to complete the merge.

Merge Conflict Editor

When conflicts occur, the Commit Panel shows the conflicted files. Click a file to open the Merge Tool.

GitKraken merge conflict interface showing conflicting file test.txt when merging origin/test-merge-pr into multi-conflict-left
Conflicted files shown in Commit Panel

The Merge Tool shows:

  • Current branch on the left
  • Target branch on the right
  • Output at the bottom
Screenshot of GitKraken's merge conflict tool showing side-by-side comparison of conflicting lines in glo/calendar.md
Review and resolve conflicts in the Merge Tool

Use checkboxes or click to select lines. Use arrow keys to navigate conflicts.

GIF showing GitKraken's merge tool with the ability to select specific changes from each side to resolve merge conflicts.
Select specific lines or edit output directly

After resolving, save and commit the output.

Tip: Use Cmd/Ctrl + F to search inside the Merge Tool.

GIF showing animated merge conflict resolution process in GitKraken, selecting changes from both sides.
Animated merge resolution process

Use an External Merge Tool

Set your preferred merge tool under Preferences > General.

Supported tools:

  • Beyond Compare
  • FileMerge
  • Kaleidoscope
  • KDiff
  • Araxis
  • P4Merge
Preferences panel showing merge tool selection dropdown with Kaleidoscope selected.
Select a merge tool in Preferences

If not appearing, ensure command line tools are installed:

Beyond Compare application menu showing the Install Command Line Tools option.
Sample view of configured merge tool

Unsupported tools include:

  • Meld
  • SemanticMerge
  • TortoiseMerge
  • WinMerge

For compatibility details, visit Git Config merge tools.

Resolve with Take Current/Incoming

Right-click a conflicted file and select:

  • Take current (branch) – Use your current branch’s changes
  • Take incoming (branch) – Use changes from the incoming branch
Merge conflict resolution menu with options to take the current branch (branch-2) or the incoming branch (branch-1).
Quick resolve using current or incoming options

Conflict Prevention

GitKraken Desktop’s Conflict Prevention helps identify potential issues before a merge.

Learn more →

Available to users on the Advanced tier or higher.


Rebasing

Rebasing moves commits from one branch onto another for a cleaner history.

To rebase:

  • Drag and drop the source branch onto the target branch
  • Select Rebase from the menu
Rebase menu with the option to rebase the testfill2 branch onto origin/develop.
Rebase one branch onto another
Sidebar context menu showing options to fast-forward, merge, or rebase the testfill2 branch onto master.
Sidebar shows rebase confirmation

Rebasing rewrites history but results in a more linear and readable commit tree.

Rebase N commits onto another branch

You can rebase a specific range of commits onto another branch without performing a full interactive rebase. This is useful when you want to move only a subset of commits from your current branch onto a target branch.

GitKraken Desktop provides two ways to do this:

Option 1: Multi-select a range of commits

  1. Check out the target branch.
  2. In the Commit Graph, hold Shift and click to select a range of commits on the source branch.
  3. Right-click the base branch and select Rebase X commits onto [branch].
GitKraken Desktop Commit Graph showing a right-click context menu on a branch with the 'Rebase 4 commits onto gitkraken/main' option highlighted, after a range of commits has been selected
Right-click the target branch after selecting a commit range to rebase

Option 2: Select a single pivot commit

  1. Select one commit in the middle of your current branch. No merge commits should exist between the selected commit and the head of the branch.
  2. Right-click the target branch.
  3. Select Rebase N commits onto [branch].

GitKraken Desktop rebases the selected commit and all subsequent commits up to the branch head onto the target branch.

Have feedback about this article? Did we miss something? Let us know!
On this page