GitKraken Desktop Documentation

Branch, Merge, and Rebase in GitKraken Desktop

Last updated: March 2026

Use this page to create, rename, delete, merge, and rebase branches in GitKraken Desktop. It also covers merge conflict resolution, external merge tools, and the difference between merge-based and rebase-based workflows so you can choose the right history strategy for your branch.

Key constraints

  • Merge strategy: Use merge to preserve branch history; use rebase to move commits onto a new base and keep history more linear
  • Merge conflict editor: The in-app merge conflict output editor requires a paid GitKraken license
  • Squash merge behavior: With Squash enabled, GitKraken Desktop stages the merge result but does not create the final commit automatically
  • Branch deletion: Deleting a branch is permanent
  • External merge tools: Review the supported and unsupported tool lists before relying on a third-party merge tool
Action Use when Preserves branch history Rewrites history Notes
Branch You need isolated work for a feature, fix, or experiment Yes No Can be renamed or deleted later
Merge You want to combine branches and keep the branch structure visible Yes No May create a merge commit
Rebase You want a more linear history before sharing or merging No Yes Replays commits onto a new base
Squash merge You want one final commit from a branch’s combined changes Partial Yes Stages the result but does not create the final commit automatically

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


Quick Start

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.


How to create and manage 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.

Use branches when: you want to isolate a feature, fix, or experiment from the main line of development. Don’t keep branches around when: the work is complete and the branch can be merged or deleted to reduce graph clutter.

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.

How to check out 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.

How to 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

How to 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.

How to pin a 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.

When to use Smart Branch Visibility

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.


How to merge branches

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

Use merge when: you want to preserve the full branch history. Use rebase when: you want to move commits onto a new base and keep the history more linear before sharing or merging.

Don’t use merge when: your team expects a rebased, linear branch before review or integration. Don’t use rebase when: collaborators are already building on the commits you plan to rewrite.

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.

When to use 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.

Use squash merges when: you want one clean commit on the target branch and do not need to preserve each feature-branch commit. Don’t use squash when: the individual commits matter for auditing, review context, or future debugging.

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.

How to resolve conflicts in the 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

How to use an external merge tool

Set your preferred merge tool under Preferences > General.

Use the built-in merge tool when: you want to stay inside GitKraken Desktop and the supported editor meets your needs. Use an external merge tool when: your team already relies on a supported third-party tool or you need a workflow GitKraken does not provide directly.

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.

How to resolve conflicts with Take Current or Take 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

How Conflict Prevention works

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

Learn more →

Available to users on the Advanced tier or higher.


How to rebase commits

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.

How to rebase a range of 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