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.
I'm involved with Étoilé, and am the lead developer on a framework called CoreObject (https://github.com/etoile/CoreObject) - it's an object persistence framework something like CoreData except it's also a DVCS.
We're going to properly launch a website for it and do an alpha release in a few weeks, but thought I would mention it since this is where most of the development on Étoilé is happening right now.
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)