Git Diffs & Merges, but Nicer

Easily trace your code's history, so you can better shape its future. Browse commits, compare branches, see how a file has changed over time. Gain insights into tricky conflicts and resolve them with a powerful merge tool.

Download Free Trial

Requires macOS Sonoma

JuxtaCode 3-way merge tool with its repository window behind.

No Subscription

Try free for 14 days and purchase with a one-off payment of $40 USD.

See What Changed

Explore the evolution of your code with JuxtaCode's sophisticated diffing tool. By simply opening your Git repo you can start browsing commits, review code changes and follow a file's history.

A JuxtaCode window showing a repository's commits and the diff of the selected commit.

Browse Commits with Ease

Traverse your project's timeline by selecting commits from the sidebar. You'll be presented with fully expanded changesets, complete with syntax highlighting.

JuxtaCode's side-by-side comparison view of two commits.

Review Code Changes

Select any 2 changesets to present them side-by-side in JuxtaCode's 2-up diff tool. This view shows one file at a time making it easy to scrutinize changes between two branches or commits.

JuxtaCode's side-by-side comparison view of two commits.

Track a File's History

Access a file’s complete history by simply opening it. A dedicated tab will show all the relevant changes from the file’s inception to the latest commit (or your local changes if you’ve made a recent edit) even if the file has been renamed or moved along the way.

All this is in JuxtaCode's intuitive commit browser. So you can filter and compare these changesets too.

JuxtaCode's side-by-side comparison view of two commits.

Commit Inspector

Detailed information about each commit is always available in the inspector sidebar. See who authored the commit and read the commit message explaining the change.

JuxtaCode's branches and tags menu.

Filter by Branch or Tag

You can focus the commit log on specific branches and tags by selecting them in the reference popup. Have a lot of branches? Just start typing the name of the branch you’re interested in to narrow down the list.

JuxtaCode's file filter popup.

Filter by File

Selecting files in the inspector sidebar will filter out the others from changeset diffs. Useful when you want to focus on one or two files in a large commit.

The file list itself can also be filtered by name, file extension or change type so you can drill down to the specific changes that matter to you.

Untangle Tricky Merges

JuxtaCode detects conflicts and surfaces the information you need to track down the underlying causes. When it comes to making fine-grained edits, the powerful and adaptive 3-way merge tool helps you weave together code from each side of the conflict.

JuxtaCode's workspace view showing a list of conflicted files.

Reveal the Story Behind the Conflict

Conflicting commits are helpfully labeled as OURS and THEIRS, making it easy to see which changes led to the conflict.

The workspace view lets you choose how to resolve each file. You can also unresolve files if you need a do-over.

JuxtaCode's 3-way merge tool.

3-way Merge Tool

Make light work of complex conflicts with the powerful 3-way merge tool. Line-level changes are highlighted with bands of colour that persist - growing and shrinking - as you merge the code. Word differences are highlighted dynamically as you type.

Compare & Merge Any Text

JuxtaCode’s diff and merge tools can be used with any plain text, even if it's not in a Git repo.

JuxtaCode window showing a list of files and a side-by-side comparison of two of the files.
Five python files being dragged into a JuxtaCode comparison window.

Open, drag, paste…

Open any file or paste text to start a comparison.

The 'New Merge' toolbar item of a JuxtaCode comparision window.

Merge Any Text

You can start a 3-way merge session from any file comparison.

Fits Your Workflow

CONFLICT (content): Merge conflict in complete-works/complete-works.xcodeproj/project.pbxproj
Auto-merging complete-works/Shared/Model/Model.swift
CONFLICT (content): Merge conflict in complete-works/Shared/Model/Model.swift
Automatic merge failed; fix conflicts and then commit the result.
> juxta_

Command Line Tool

Launch diffs and merges right form the terminal with the juxta command line tool.

JuxtaCode's 3-way merge tool, opened from a conflicted file in Visual Studio Code.

Integrate with Visual Studio Code

Switch easily from VS Code to JuxtaCode whenever you need to resolve a conflict.

Launch From Your Git Client

While you can select commits to compare and files to merge within JuxtaCode, you can also drive these actions from your Git client of choice.

  • ✔︎Tower
  • ✔︎Gitfox
  • ✔︎Fork
Download Free Trial

Requires macOS Sonoma