Recs.
Updated
SmartGit is very handy at viewing diffs, logs, history and deleting/staging working copy files.
SpecsUpdate
Pros
Pro Uncluttered UI
SmartGit has a rather clean and uncluttered user interface. All the most useful tools and information are displayed at all times or are otherwise just a couple of clicks away.
All repositories are displayed in the sidebar and through a tabbed interface you can view various info about a specific repository (files, branches, branch graph, etc). The most used git commands like pull
, push
, sync
, commit
and merge
are always available on top.
Pro Free for non-commercial use
SmartGit can be used free of charge by Open Source developers, teachers and their students, or for hobby, non-paid usage. However, some features are only available with paid versions, like JIRA/GitHub Entreprise/Bitbucket integration, distributed review, DeepGit.
Pro Smart embedded difference viewer
When the changes affect only a few characters in a line of code, the embedded difference viewers in the majority of competitors (such as SourceTree) show the whole line as removed and re-added. SmartGit highlights the characters that have been removed / added, so they are easier to read.
Pro Great overview of the project/repository's log
SmartGit's log viewer displays the full commit history in a clean UI. This can be filtered to only show commits matching a certain criterion (e.g. branch).
Pro Can be integrated with Github, GitLab, Bitbucket, and Atlassian Stash
Using OAuth, you can connect SmartGit with your accounts in Github, GitLab, Bitbucket, or Stash and access the remote repositories there. You can then clone, fork, commit or push to your remote repositories from inside SmartGit. You can also view and manage pull requests for your open source projects from SmartGit.
Cons
Con Non-free/libre
The source code is not available to audit, improve, or redistribute. Thus, this application cannot be trusted in terms of security, and if the devs abandon it, it can't be maintained by others.
Con For commercial use a license has to be purchased
You are allowed to use SmartGit free of charge for several purposes (e.g. for hobby use, education, as Open Source developer, "by public charitable organizations primarily targeting philanthropy, health research, education or social well-being"), every other usage requires to buy a license.
Con Perspective views can be limiting
Being able to see everything at a glance is important. Some updates, however, change the perspective views which are rather fixed. It lacks a more open way to add and remove windows to create your own perspectives as these changes between versions can disrupt a nice workflow.
Con Unintuitive UI
At first glance, the sub windows are poorly organized. For example, there isn't an easy way to navigate the files in the repository. It's drastically differently designed than other popular source control clients.
Con Some mercurial functionality has been renamed
In order to preserve the same interface across Git and Mercurial, some naming compromises have been made.
Recommendations
Comments
Flagged Pros + Cons
Pro Git-flow support
Git-flow provides a consistent development process by defining a strict branching model that is great for managing large projects. SmartGit allows setting up and integrating into repos that follow this model.
Pro Free for non-commercial use (with some restrictions)
SmartGit can be used free of charge by Open Source developers, teachers and their students, or for hobby, non-paid usage. However, some features are only available with paid versions, like JIRA/GitHub Entreprise/Bitbucket integration, distributed review, DeepGit.
Pro Can be integrated with Github, GitLab, Bitbucket, and Atlassian Stash
Using OAuth, you can connect SmartGit with your accounts in Github, GitLab, Bitbucket, or Stash and access the remote repositories there. You can then clone, fork, commit or push to your remote repositories from inside SmartGit. You can also view and manage pull requests for your open source projects from SmartGit.
Pro Supports GitFlow
GitFlow provides a consistent development process by defining a strict branching model that is great for managing large projects. SmartGit allows for setting up and integrating into repos that follow this model.
Pro Supports Mercurial & SVN
Apart from Git, SmartGit supports both Mercurial and SVN via a git bridge.