SmartGit is a graphical Git client which runs on Linux, Mac OS X and Windows.
Switching between Branches
The simplest way to switch between branches (or more precisely, between the latest commits within branches) is to double-click on a branch in the Branches view and confirm the Switch Branch dialog that comes up.
If you switch to a remote branch, you can optionally create a new local branch (recommended) and set up branch tracking.
If you switch to a local branch that tracks a remote branch, and the latter is ahead of the local branch by a couple of commits, you can decide whether you just want to just switch to the latest commit of the local branch, or to switch and let SmartGit do a fast-forward merge to the latest commit of the remote branch.
If you have local changes in your working tree, the Switch might fail. In this case, SmartGit offers you to stash away the local changes before executing the actual Switch command and re-apply the changes from the stash after executing the command.