Really? I'm pretty happy with it. Definitely better than Github desktop, and more full featured than the light git extensions you find in most editors.
Not really a fair comparison: SourceTree targets professional devs while GitHub Desktop caters to making git + GitHub simple for beginners. I like the client personally, but it isn't a daily driver. Beyond absolute basics the feature set is totally different.
GitKraken looks promising, and introduces some new UI concepts (drag and drop merging, for example). It's still fairly young but could be a competitor.
I've been using Fork (git-fork.com), and it's fantastic. Similar UI to SourceTree on the surface, but more obvious in other ways. It's blazing fast, and the author is super responsive to requests and to make fixes.
In case you missed it, Tower (https://www.git-tower.com – not affiliated) recently got a Windows version. It doesn't have the same level of quality as the Mac version yet (which I've been using for years) but it's improving rapidly and I expect it to be production ready within a couple of months. It's taking relatively long to port because thankfully it is made a native Windows application. Not free, but well worth the money.
Tobias here from the Tower team! I'd like to confirm your assumption: we're indeed working full-steam on improving Tower for Windows (and Mac, of course ;-)
We have quite some exciting features and additions on the roadmap!
I like Tower on macOS, but version 2 is significantly worse than version 1. UI/UX and the number of bugs has been a major pain-point that has made me consider switching to SourceTree. But I still haven't gotten use to SourceTree and GitHub Desktop isn't a great client either as a substitute.
Staging, unstaging, and discarding line-by-line has been extremely flaky for me in v1 and v2. Often discarding a deleted line will insert the line in a completely unrelated part of the file, so instead of a deletion, you now have a deletion and an addition. And so on.
In combination with GitUp, it's still a great tool, but it could need better QA so that even edge cases are solid.
This is different than my experience of Tower and Tower 2.
I frequently pick through dozens of lines of code for a granular commit history, sometimes backing up a commit, saving a commit as a patch, (then) amending some lines to a previous commit, staging/unstaging non-consecutive additions and deletions, etc. and I've not experienced problems.
Renaming repos is straightforward but doing so does not rename the directory in the filesystem. It only renames it in the Tower UI.
To rename the repo root directory, one should copy the origin root directory naming it to the new name and then run
git init --bare name_of_directory
to create a new repo.
The only trouble I've experienced is deleting branches and tags from Github. Not sure if it's Github or Tower, but deleting those items and then recreating them often yields an error that the item still exists.
(In my defense, the process established at work requires a deploy of a tag to STG once every 2 weeks, but the tag must be deployed to STG every week, leading to a situation where the STG tag must be deleted and recreated. Come to think of it, I'm going to suggest we change our process.)
I'm not affiliated with Tower except as a satisfied user.
Yeah, my intent is to rename them in the UI only. For example, if the dir is "my-repo", I might prefer to call it "My Repo" in Tower instead. All of my repos are nested within one or more groups in Tower, which may be relevant.
I've had similar issues with staging/un-staging causing crashes or just hanging Tower.
My biggest gripe is that Tower 1 use to display all your stashes on the side (expanded, not collapsed) by name/date. Tower 2 hides all that information from being easily viewable. I use to use stashes quite a lot, but since switching over I've significantly decreased my usage of it.
Agreed. Instead we can see tags in the sidebar, which is awkward once you have >20 of them (tagged stable versions). I wish tags and stashes swapped places.
Are you seeing the lines get inserted into the file itself or that that's just what the diff reflects? I have experienced the diff in Tower being wrong (getting stale), and while a minor nuisance, it's always been fixed by a restart.
Yeah, the lines get inserted in other places. Usually at this point I just unstage the whole file, fix all errors that Tower introduced in a text editor, and start over.