Which macOS Git GUI app offers a "Split View Staging" view?
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:
- Staging
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:
- Chunk & Line Staging
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.
I've been using Fork (https://git-fork.com/ - it's free for Mac and Windows) for almost 6 months now, after leaving SourceTree behind. I think it works incredibly well. Updates are not frequent, but they do happen. There are a few things missing from SourceTree (for example, I cannot see if my commit was signed with my GPG key - I have to run a git command in the terminal to check - but the option to have commits signed IS there and it does work, IF you remember to enable it for every repository), but I've been using it every day for 6 months without a single slowdown or problem. I routinely have two windows open, with about 30 tabs between the two.
The built-in merge tool is very nicely done as well. It is efficient and lets me pick between the two sides which lines to keep from which source. The wording is a little bit confusing to me, but that's mostly because I cannot seem to remember which side is "mine" and which is "theirs" when fixing a merge conflict.
Edit: I should note that it has the ability to stage/unstage custom hunks. All you have to do is highlight the line(s) you want and click stage/unstage.
Here's a screenshot of the changes tab, since Fork's website has everything except this: