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:
- Right-click any commit in the graph and select Create branch here.
- Enter a branch name and press Enter.
- Double-click the branch label in the graph or Left Panel to check it out.
To merge a branch:
- Check out the branch you want to merge into.
- Right-click the source branch in the Left Panel and select Merge, or drag and drop it onto the target branch.
- 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:
- Drag the source branch onto the target branch and select Rebase.
- 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.

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

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.

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

Delete a Branch
To delete a branch:
- Switch to another branch
- 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

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:
- Right-click a branch label in the Commit Graph or the Left Panel.
- Select Pin to left.

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:
- Click the gear icon in the top-right corner of the Commit Graph header.
- Select Smart Branch Visibility.

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

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:
- Go to Preferences > Commit.
- Enable the Squash toggle.

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.

The Merge Tool shows:
- Current branch on the left
- Target branch on the right
- Output at the bottom

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

After resolving, save and commit the output.
Tip: Use Cmd/Ctrl + F to search inside the Merge Tool.

Use an External Merge Tool
Set your preferred merge tool under Preferences > General.
Supported tools:
- Beyond Compare
- FileMerge
- Kaleidoscope
- KDiff
- Araxis
- P4Merge

If not appearing, ensure command line tools are installed:

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 changesTake incoming (branch)– Use changes from the incoming branch

Conflict Prevention
GitKraken Desktop’s Conflict Prevention helps identify potential issues before a merge.
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


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
- Check out the target branch.
- In the Commit Graph, hold Shift and click to select a range of commits on the source branch.
- Right-click the base branch and select Rebase X commits onto [branch].

Option 2: Select a single pivot commit
- 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.
- Right-click the target branch.
- 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.