Git Diffs & Merges, but Nicer

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.

JuxtaCode repository window comparing two commits side-by-side.

Learn how David uses JuxtaCode as part of his workflow in #308 of Under the Radar

New in Version 1.2

Tahoe Compatibility

JuxtaCode's UI has been overhauled to work with Liquid Glass on macOS Tahoe.

Plus:

  • Symbols to indicate change types
  • Performance and stability improvements
Read Release Notes

See What Changed

Simply open your Git repo to browse commits, review code changes or track a file's history.

Browse Commits with Ease

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

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

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.

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

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.

Plus More Tools for Diving Deep

  • A detailed commit inspector.
  • Search commits by message, hash, branch or tag.
  • Filter commits by branch or tag.
  • Filter files by file name, file type or type of change.

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.

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.

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.

Open, drag, paste…

Open any file or paste text to start a comparison.

Five python files being dragged into a JuxtaCode comparison window.

Merge Any Text

Start a 3-way merge from any file comparison.

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

Fits Your Workflow

Command Line Tool

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

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_

Integrate with Visual Studio Code

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

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

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