Recs.
Updated
Sourcetree is a full featured and free Git UI for both Mac and Windows that provides an interface for pretty much everything you can do in the CL.
SpecsUpdate
Pros
Pro Allows chunks and lines selection during commit
SourceTree automatically splits the changes to be committed into chunks allowing committing (or discarding) each chunk separately. Furthermore, the user can even select specific lines. This greatly increases the flexibility of the user in that matter.
Pro Comprehensive layout
SourceTree has three main repository views: file status, history, and search.
File status view shows status of currently selected repo. It's split into two areas - file list and diff-view.
History view tracks changes made to the currently selected repository. It's divided into three sections. The top section has a graph with progression of commits, branches, and merges. The bottom section shows commit details, files changed, and differences committed.
Search view allows looking up commit messages, users, files changes, branches, and commit SHA.
There's also a toolbar at the top that allows switching between the three views, as well as giving access to git commands (such as commit, checkout, reset, stash, add, remove, fetch, pull, push, branch, merge, and tag).
Pro Built-in Git-flow and Hg-flow support
Git-flow and Hg-flow provide a consistent development process by defining a strict branching model that is great for managing large projects.
Sourcetree allows setting up and integrating into repos that follow this model. Clicking the Git-flow / Hg-flow toolbar button will give you access to actions for starting or finishing features, releases or hotfixes depending on current state of repository.
Pro Quick setup
Once installed, SourceTree will automatically try to look for and set up repos that are worked on. SourceTree will also detect if git-flow is used and what is the current development state as long as default git-flow branch names are used.
The software tracks all relevant repositories in the bookmark's window. Repositories can be added to the list by creating new ones, adding a local folder, supplying a clone URL or integrating with remote services such as Bitbucket or GitHub.
Cons
Con Obscures the fundamentals of Git
People who rely on this tool struggle to understand how Git actually works. Much better to simply use the command line, and then perhaps move to this utility after you have that mastered.
Con Information density can be a bit much
It's possible to be overwhelmed with the information density presented in Sourcetree. Especially in history view since it includes a lot of data presented in various ways.
It's great for getting a comprehensive overview of everything that's happening in one place, but it can take some getting used.