Personally I'd just pop open a terminal and brew-up the usual *nix shell tools, but I need to make a software recommendation to some clients that need something a bit more newbie friendly.

The situation is that several clients have developed website(s) of the mostly static HTML sort, but the server they need deploy to doesn't have your usual collection of 1990s protocols available (for example, no FTP). In fact, there is no access at all to the front-end server. Deployment is handled through Git. Changes need to be pushed to a remote repository that is accessible only via SSH key login. Any commits to the master branch pushed by the authorized key trigger a hook script that deploys the site to the production servers.

I am looking to suggest a Git client for OS X that:

  • makes it relatively simple to setup and initialize…
    • …one or more local repositories.
    • …a single git + ssh remote.
    • …authentication using an RSA key pair (generation of this would be a bonus).
  • has a simple interface where a basic workflow of committing and pushing is easy to accomplish without understanding the intricacies of distributed version control.

There is a GitLab instance available for each client that has one project per domain and makes adding their public key fairly easy. It also gives the clone/remote URLs for each project and makes it fairly easy to check what the status of the remote repository is.

Open source would be preferred, but any reputable freeware would be acceptable. What client software should I point them to?

Edit: Most suggestions to date seem to focus on full-blown frontends to all of Git's functionality. I'm looking for something more pared down that only covers the basics and is better suited for a specific task than at running with the big dogs. I'm thinking KISS principle here for people that do not use version control for anything else and just want to "upload" their websites.

  • 1
    Please note I asked a similar question for Windows, but I specifically want tools that are familiar and easy te get the hang of. Cross platform would be OK, but I have and idea the best newbie solution for newbies will be something native to each platform so please keep that in mind when answering.
    – Caleb
    Feb 18, 2014 at 11:57
  • Gitti (currently beta), Gitbox (gratis status not clear), and Git-cola look like potental contenders for this. If anybody has experience with one of them and wants to do a write up that suggests how it would handle this case...
    – Caleb
    Feb 18, 2014 at 14:30

5 Answers 5


I used to do the trivial Git work with GitX. It has a minimal user interface and is just enough for adding, pulling, pushing and committing. Generating keys has to be done through the command line though.

GitX History View

There are other GitX-forks available. The original is mostly focused on simplicity.



I switched to Tower after I got fed up with the free options. I know you're after OSS/free, but still think this is a useful contribution, even if just for others looking for Git apps (student/education discounts available too).

While it's tagline is "the most powerful git client for Mac" I also think it's one of the easiest to use. Sure, it handles a lot of the features you don't need, but it has very simple repo setup, and behaves like you'd expect of an OS X application (things like quick-look, drag & drop, integration with some other common apps for diffs, etc).

Setting up / managing repositories is straight forward, with simple options for cloning an SVN repo, or creating GitHub/Beanstalk/Bitbucket repos. Switching between repositories is simple (two clicks).

I personally authenticate via my SSH key in ~/.ssh/, which I generated via ssh-keygen (built-into OS X). With git via SSH this gets used automatically, and I've never actually done any setup in Tower for authentication, other than intentionally leaving the password field blank. I'm not sure that it can actually generate keys though.

It has a very simple "Status" tab for viewing modified/un-versioned files, checkbox staging per file (and a stage-all button), and buttons for committing, pushing & pulling. Users do have to know that they need to push after committing though.

There's a nice "Commits" tab for viewing the commit history, which shows diffs and also lets you open diffs in an external diff tool (like FileMerge from Xcode).


As I started with git on OSX, my preference was for SourceTree.

This app is free, not too complicated and one of my requirement was to have a multi-platform app (Windows and OSX).

  • 1
    Currently I prefer SmartGit over SourceTree. Tried both, SourceTree did not detect changes I could detect by using git status in command line.
    – Michael S.
    Mar 22, 2016 at 18:20

I'm on the team that develops GitKraken, so I'm a little biased, but I'd highly recommend you check it out. It's cross-platform so you can use the same tool in Windows, Mac and Linux and it comes with some other unique features including undo/redo, indexed search and a responsive, intuitive design. If GitKraken doesn't work for you, I've also used and had some success with GitHub Desktop (Windows/Mac).

  • Looks interesting. Few apps except the most complicated apps let you view the history of one file, stackoverflow.com/questions/278192/…. Perhaps you'd consider adding that.
    – empedocle
    Feb 8, 2016 at 5:43
  • Yeah, that's very important and we're definitely planning on doing that. Keep an eye out for upcoming releases!
    – Chris
    Feb 8, 2016 at 13:55
  • Awesome. Looking forward to it @Chris!
    – empedocle
    Feb 8, 2016 at 15:58
  • GitKraken is promising but not mature enough to be used as an unique tool for git interactions. In my situation I use git-flow and I often need the console to get desired results. Mar 22, 2016 at 22:19

If you want a basic git gui, you can take a look Visual Studio Code. It's free, open-source, and runs on windows, mac, and linux. It's not a full-blown git client, just does the basic features like pull, push, and commits.

I don't think it will do the ssh setup part though. You may have to write a simple Automator script to do that.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.