When I first learned about git, I heard that CLI was for real developers, and GUI tools for newbies. So for many years I stuck to using git with the command line interface to avoid getting called a newbie.
But then I started using PhpStorm about 5 years ago, and since it comes with a neat Git client that does a very decent job, I thought using a GUI client was not so bad after all. I used it for about a year, and while it's sufficient to get the job done, the interface is a little too austere.
Over the next couple years, I tried other clients:
- SourceTree. A solid Git client, but I didn't like the commits list layout, nor the tree view. The interface is a bit too clunky for my taste..
- Sublime Merge. I liked it a lot because it sports the same benefits as Sublime Text, namely a super responsive interface, a useful command palette, and an overall nice look. But again I didn't like the tree view.
As you can guess, the tree view is important to me because I work with other people and it's important for me to figure out what is going on inside the repo.
At some point I considered using other clients but ended up passing, like SmartGit. It looks like a powerful client, but the UI is too "linuxy" for me. It would feel like using Gimp. Or Tower, but I always felt like it was more geared toward less techy people. The price tag is also steep with a minimum of $60/year.
This leads us to Fork.
A powerful and elegant Git client
After spending 18 months with Sublime Merge and scratching my head on the tree view, I went in search for a Git client that was as powerful but with a more polished interface. That's when I discovered Fork.
The first thing that hit me when I launched Fork was the elegant UI. It really looks like a Mac-first app (even though it's available on Windows), and as such it sports a sleek interface, with everything you need easy to find, and nothing feeling clunky.
But what sealed the deal for me was the tree view. It's just clean, and makes it easy to understand what happened or is happening between the different branches, merge operations, origins, and tags.
The staging and commit experience is great; there's a clever layout for the new, modified, and staged files. The commit box actually makes you want to create great commit messages.
Interactive rebases are a breeze with an interface well thought-out, to let you pick, squash, or reword commits without any confusion.
It also has many small but useful features:
- when it detects that a repository is hosted on Github, GitLab, or BitBucket, it offers a context menu to directly go to the repository web page.
- For any action that the client perform, you can see what actually went under the hood with a single click, that shows you what CLI commands were run.
- Stashing and applying changes is a matter of a couple clicks.
- Managing branches and tags is a breeze, with everything accessible from the context menu. A simple but killer feature for my usage: the ability to fast-forward multiple branches at a time.
Last but not least, Fork has a command palette to access any repository or command in just a few keystrokes, so you don't even need to use the mouse.
I think it's a fantastic product, and is even more impressive when you consider that it's made by a team of just two. The only thing that could be considered a "downside" for some people is that it's not free like some other Git clients. It's a one-time $49 fee. I paid that fee gladly since it's been my favorite and main Git client since several months.
So if you're in search of a great Git client, give it a try.