MacOS – Which macOS Git GUI app offers a “Split View Staging” view

developmentgitmacossoftware-recommendation

I use SourceTree as a Git GUI tool. I'm very productive with the app and find it far preferable to the command line Git interface for common tasks.

Unfortunately, SourceTree is incredibly slow, buggy, lacking features, and rarely updated. I would very much like to reduce my dependency on Atlassian's product.

The problem is that I'm heavily dependent on SourceTree's Split View Staging view of the staging area. This view perfectly fits my mental model of how a staging view should work.

Split View Staging view selection

This view allows individual lines, hunks, or single-character changes to be staged independently. Then, all of the currently staged changes are shown in a single pane of the split view. All of the unstaged changes are shown in the other pane.

This allows you to easily see exactly which changes are staged at any given time, and commit only those specific changes. A file can exist in both the staged and unstaged panes.

A single file with staged and unstaged lines

What other macOS Git GUI app or tool offers a commit/staging view similar to Split View Staging offered by SourceTree?

One popular Git GUI app, GitHub Desktop, apparently has no plans to support Split View Staging:

Best Answer

There are various free as well as commercial macOS Git GUI apps available as listed on Git SCM webpage. The listed tools differ in their performance and feature set. The list is a living document with new apps getting added over time.

As you are looking for a macOS app with support for granular staging/unstaging support, I'll list one free and one paid tool each here which I use/have used personally. I too am a heavy user of SourceTree, but keep up with it's minor annoyances.

1. GitKraken (Free):

GitKraken is a free macOS Git GUI client. Although it's not a native app, but it comes with extensive set of features. Along with adding new features, the team behind the client is constantly working on improving overall performance with frequent releases. It supports Split View Staging. More details here:

Unstage files by selecting a staged file and hitting the Unstage File button that appears. If you click on a file to view the diff, you can selectively unstage lines or hunks.


2. Tower (Paid):

Tower is a paid macOS Git GUI client. It's a native macOS app with excellent UX and performance. It is quite popular among software developers. It supports Split View Staging. More details here:

One of the things that make Git such a great tool is the ability to craft granular commits. With Git's staging area, you can determine which changes exactly you want to have in the next commit. Tower takes this one step further by allowing you to determine the exact chunks and even lines you want to add:

Select a changed file in the Working Copy list. In the diff view on the right, you can then select the exact chunks & lines you want to add to the next commit.

I personally use SourceTree and Tower.

I'd recommend you to give the various tools mentioned on Git SCM webpage a try and choose as per your liking.

No affiliation whatsoever to any of the mentioned apps. I am on a constant pursuit to select and use the best tools available for the job at hand.