I've found the gui tools that come with git are actually the closest thing to SourceTree, and I'm tempted to switch to them because they're open source and work everywhere:
git gui (for staging and committing, including selecting lines to stage, which is in the right-click menu)
gitk --all (commit graph of all branches, switching checked out branch)
The main negative is a weird gui toolkit and some weird gui conventions (e.g., in "git gui", you click the _icon_ in the list of files on the left to stage/unstage the whole file)
agreed, git gui and gitk are a really good combo. For the most part I use the command line and sublimegit. git gui is hard to beat when I am staging hunks.
git gui (for staging and committing, including selecting lines to stage, which is in the right-click menu) gitk --all (commit graph of all branches, switching checked out branch)
The main negative is a weird gui toolkit and some weird gui conventions (e.g., in "git gui", you click the _icon_ in the list of files on the left to stage/unstage the whole file)