I will confess to being a long time linux and Emacs user. As such moving from CVS and SVN to GIT and HG was pretty easy. The Emacs VCS modes for all four systems are pretty similar and the same basic keystrokes will work on all of them. (Which is really quite handy when you have to switch back and forth for different projects).
In addition I have long experience with command lines so using a unix bash shell to get things done is not a big deal for me. Of course not everyone will wish to work with a command line tool (or to do so for all tasks). As such there are a number of tools for both the Mac and Windows that can make your life easier.
In order to be included here a package must be free and include all of the normal git commands that you might want to use from a command line.
If you are an emacs user who has worked with other VCS systems such as CVS or SVN in emacs then you may wish to also work with GIT or HG in emacs. Thankfully Emacs has good integration with both git and HG. In addition many of the same key commands work across CVS, SVN, HG and GIT. So in all four systems the command "C-x v d" will show you which files have changed since the last commit. (Of course what a commit means in those four systems is not the same).
If you are using the GIT mode in emacs there will be an addition to the status bar that says Git:<branch name>. If you click on that you will get a menu that will show you all of the various options for git under emacs.
In HG you sill see something similar but it will show a slightly different status bar message. TODO Expand
If you have used the Tortoise Client for CVS or SVN you will be happy to know that they also have clients for GIT and HG. Both provide menus in the windows explorer.
TODO EXPAND
Github also has a great client for windows. Sporting a very nice Windows 8 Metro theme it can be found at http://windows.github.com. GitHub for windows will work with Windows XP, Vista, 7 and 8.
While setting up GIT for windows can be a pain in the neck Github for Windows is an easy install. It installs a self contained git install that will not require anything else.
When you first install GitHub for windows it will ask you for your github user and password. It will then setup an SSH key so that it can connect to GitHub.
If you install GitHub for windows and want to from time to time use a command line then you can do that. It installs Posh Git which is a command line git client that will also use the same ssh key and other settings as the rest of Gihbu For windows.
TODO: Screen shots
There are a number of graphical git tools for the mac. You can of course download the command line git via homebrew (and probably should) but if you want to do some things with a graphical client there are a few free options.
The folks at GitHub, as part of their effort to improve the git ecosystem have their own Git client for the mac, You can download it from http://mac.github.com/ or by going to http://www.github.com and selecting GitHub for Mac at the bottom of the page. GitHub for Mac works with Mac OS 10.7 (Lion) and later.
Note: you do not need to use GitHub for mac only with GitHub, it will work with any git repository. So if you host your public projects on github and your private ones on bitbucket you can use this tool with both. However some features may only work with GitHub
The GitHub mac client will of course do everything you would expect a git client to do. It can commit changes, view history, create and merge branches and so on.
When you open the GitHub client you are presented with a panel that lists your repositories. You can select one to work with. If you need to create a new repository or open one that the client does not know about you can do that from the file menu.
When you select a repository you are presented with a panel with four buttons on the side, that cover most of the options that you would want to do.
The top button, will show the history of the current branch. You can select a given commit and see the comment as well as what was changed in that commit.
To commit a set of changes go to the second button. The left hand side of the panel will show a list of files that have changed. Select the file or files that you wish to commit, and enter a comment then click the commit button. If you need to review what was changed in a given file that will be shown on the right side.
If you have multiple branches (and in many projects you probably should) you can work with those branches in the branches tab. Here you can create a new branch, select which branch to work with and so on. You can also publish a branch to the server.
The final tab is the settings tab. From here you can set the remote origin of a repository. In addition you can setup the .gitignore file
You can also do a push or a pull from the client. to do a push hit command-P and a pull can be done with Command-Shift-P. The default way to sync with a server from GitHub for mac is to use the "Sync" button which will do a push and a pull at once.
Nicely it will also work with other git clients (as you would expect) so you can commit changes with eclipse and review them with the GitHub client.