Comment by prmph

Comment by prmph 20 hours ago

47 replies

You might laugh, but in years of serious development, I have not come across a better git UI tool than SourceTree.

If I want to be hard-core, I'd use the original git CLI. SourceTree is unmatched in how it makes using git so much more pleasant for when you need to do something relatively simple, but which would be quite cumbersome to do with the CLI and most other tools I've tried.

Its file status and history view is unmatched IMO. I can easily stage/unstage hunks and even lines. The whole UI is generally quite polished and pleasant to use.

It's a real shame there is not a version for linux. I've tried every other git interface under the sun and keep coming back to it. In the meantime, I tried lazygit the past weekend and I think it is one of the better TUI git tools out there, definitely better than GitUI.

jonathanlydall 7 hours ago

On Windows I've been using TortoiseGit for over a decade now and in terms of Git power user features in a GUI I think it's unmatched.

People who defend the CLI as the only real way to use Git simply haven't used a decent GUI for it. I consider myself a very advanced Git user, but I barely know the CLI commands off the top of my head.

A GUI really makes a lot of sense for something like Git, most of the time what you want to do is "contextual' from something like a list of files to commit or a log of commits and TortoiseGit is pretty good about exposing whatever you'd need to do.

I find that with GitKraken (aside from not being free), I just don't feel in control of what I'm trying to achieve with Git.

Git Extensions seemed pretty decent and possibly a nicer GUI paradigm than TortoiseGit, but when I tried it I found TortoiseGit to offer more power to me.

One thing that does annoy me a bit about TortoiseGit is that it has this philosophy of a new Window for everything, which for most things is not a problem, but is in a couple of places. For example, to work on a repository you tend to have to use the Explorer context menu to do things. I tend to open the git log window once and leave it open, and from it I can do pretty much everything. If it had some sort of "main app" view with a tab per repository you have open that would be awesome, instead of my having to have multiple open log windows. Similarly, for commits and PRs I like to double check each file's diffs. Its UI opens each one in a new window, but if it would rather have a sub pane from the commit view I think it would work better.

I used to use SourceTree in conjunction with TortoiseGit because I liked its tabbed UI for the simple things like pulling/fetching/pushing, switching branches, but I stopped using it about 5 years ago, the Windows version of it felt neglected in that it would often crash or become very slow.

  • url00 2 hours ago

    There are two of us! I also espouse the virtues of TortiseGit any time I am able! I do take a bit of guff at work, but one feature of TG I've never seen equalled is how it handles what I call "drill-down git blame adventures". TG'a blame lets you easily keep going down through a files commit history in a way that is both intuitive and useful. My only issue with TG is that it is so Windows-focus and as I'm working more and more in Linux I will tragically need to leave it behind ;_;

  • chrisan 4 hours ago

    Man, those are 2 apps I haven't touched in decades. They felt novel at the time, but they just aren't as fast for me since it requires leaving my IDE which already has both CLI and visual git methods (I use intellij products)

skydhash 19 hours ago

Did you try magit? There's a bit of learning curve as it's built on top of Emacs, but it's entirely keyboard driven. I still have to find a workflow that it does not support.

  • aidenn0 10 hours ago

    Not who you are replying to, but I have bounced off of magit at least 3 separate times of trying it. I have been using both git and emacs for many years. Something about it just refuses to "click" with me.

    FWIW, jujutsu was an improvement over git for me in about 5 minutes of using it.

  • Quekid5 16 hours ago

    Magit[0] is so good that I haven't felt any real need to use jj... yet. I'm sure I'll switch if it gets emacs integration of a similar level to magit, but the one I tried[1] isn't quite there yet.

    [0] Well, plus git-mediate for solving conflicts

    [1] https://github.com/bolivier/jj-mode.el

    • abathologist 14 hours ago

      Same. I have not been able to find an explanation of anything jj supports that I don't have already with magit, but I am open to learning :)

      • Quekid5 14 hours ago

        I think the big thing (potentially, for me) is the ability to postpone conflict resolution during a rebase. That can be quite painful in regular old git, but git-mediate helps make that less painful in practice in my particular situation and workflow.

        We'll see once better non-cli UX appears. I'm low-key excited for what could be possible in this space.

        • abathologist 18 minutes ago

          I am excited too! It is probably too much to hope, but I nonetheless am hoping that magit gets a jj backend before I have enough motivation or need to learn a new tool to do the same old stuff :D

tomovo 16 hours ago

Now I've got to mention Sublime Merge as my personal favorite: super fast, nice clean UI on all platforms, still maintained, single purchase license.

  • have_faith 16 hours ago

    Big fan of sublime merge. I recommend it a lot to people who need to dip their toes in source control and want some layer of abstraction, but also want to feel like they’re connected to the underlying tool (git). Merge balances this very well.

  • petesergeant 10 hours ago

    It’s a fantastic tool, and although I’m very comfortable on the command line, I always reach for Sublime Merge

  • tombert 13 hours ago

    I know a lot of devs hate on Perforce (and I am no exception), but I've grown to actually really like p4merge (the Perforce merge tool) for handling conflicts.

    It's a bit of an odd one, and it has a bit of a learning curve, but it's free (as in beer), relatively easy to install, and seems to work well for me. I haven't found a FOSS tool that I like as much yet.

    • neves 13 hours ago

      Kdiff3 used to be great. Had a stable and outdated interface.

      Now that they updated the interface I've had problems. Ch l crashes and difficulty to install as non admin.

      • tombert 12 hours ago

        I don't think I've actually used Kdiff3. I always assumed that it was Linux only but apparently I was objectively wrong about that. I should give it a shot.

darknavi 18 hours ago

For staging/committing I haven't found anything that I've liked more than Git Extensions' Commit view.

One of the main things I like about it is that it does _not_ auto refresh. A long time ago with SourceTree I'd have issues mixing git CLI and SoureTree because two processes would be doing things at the same time (I assume SourceTree was doing things like `git status` while I was trying to `git fetch` or something).

https://git-extensions-documentation.readthedocs.io/en/main/...

CamJN 18 hours ago

I find both Fork and Tower to be much better than SourceTree, have you only tried free tools?

  • Sammi 18 hours ago

    I can't live without Fork. It's the one thing I miss on Linux. I have it in Wine, but it's running terribly there unfortunately.

    • wingerlang 17 hours ago

      I’ve used SourceTree for a decade, Fork is the only one I’ve switched to partially (at work).

      I probably will switch back to ST even at work because I dislike:

      - I want the split view of ST where I can simply see the changes and not lose the commit log.

      - “see only current branch” is super useful in ST to see only the current branch’s commit log.

      (Partially writing this in hopes of someone pointing out ways to do this in Fork)

      • weeb 16 hours ago

        You can do "see only current branch" with the little filter icon when you hover next to a branch. Although I do find myself getting lost amongst branches more easily compared to Sourcetree, I think there's some difference in how filters are combined that isn't ideal (but I can't remember specifics)

    • jahnu 7 hours ago

      Another vote for Fork here. Used to use many different UI clients, including ST and Tower but left Tower for Fork. I still add P4 Merge as my external merge tool though. It seems to have the best algorithm and often solves conflicts automatically.

    • iMerNibor 5 hours ago

      SourceGit comes pretty close to it for me (same situation)

  • asaddhamani 11 hours ago

    I love Tower and have paid for it for years. I can’t imagine using the git CLI now. GUIs were invented for a reason and the git CLI has terrible ergonomics and many ways to make costly mistakes.

  • prmph 18 hours ago

    I have dabbled in those tools. Still did not change my opinion.

dgritsko 2 hours ago

Fellow SourceTree apologist here. It remains one of the first things I install on a new machine. I'll do simple stuff directly in the CLI, but stick with SourceTree for anything moderately complicated (as you've mentioned).

9dev 18 hours ago

Have you tried the Jetbrains IDE git client yet? It hits the perfect spot for me.

  • guytv 5 hours ago

    Tried it more than once, still SourceTree is easier to use.

  • jayd16 15 hours ago

    Its good but actually a little slow at times. For a big repo, it feels like they're handling a few commands synchronously and it hits IDE performance, when they should really be showing some kind of async spinner and yielding so the rest of the IDE continues.

damethos 9 hours ago

I was using SmartGit for many years and was very happy with it, until they made it subscription based and had to switch to SourceTree. It works but I do not find it very smooth at all. It hangs every now (using MacOSX) and in general the experience is not as smooth as it was with SmartGit. I am surprised that you are saying that you haven't come across any better tool.

  • xaedes 3 hours ago

    For a few minutes after reading this I was worried about smartgit losing its way. But it seems they actually still offer perpetual single-payment licenses, where you purchase a few years of updates, usable after update period ends.

zdragnar 13 hours ago

If you don't mind a TUI, I've been very much enjoying gitui - in fact, this is the second time I've recommended it recently. Adding hunks and single lines is easy, and the various commands are all visible, so it lacks the usual TUI experience of "what key do I need again?"

jayd16 15 hours ago

If you're down to try it, I actually think SmartGit is a similar style but ended up working better for the slightly more exotic things like submodules.

IshKebab 18 hours ago

It's pretty good but also really slow. I never found one better than GitX, but that was in the days before IDEs had Git support built in. Now they do it doesn't really make sense to use a separate program IMO.

These days I use VSCode and the Git Graph extension.

  • pqdbr 3 hours ago

    +1 for GitX. For some reason the most recent version in GitHub doesn't work well for me anymore, so I keep an extremely old version (Version 0.15.1964 dev (0.15.1964) in a Dropbox folder and it's my daily driver for years.

rc_kas 18 hours ago

There are few UI's that I hate more in the world than SourceTree. That pile of junk has cost me so many hours of life trying to support the developers in fixing a thousand weird issues.

No, please throw SourceTree into the garbage can.

  • prmph 18 hours ago

    What exactly were the problems? I have been using it since like forever and have not run into any issues at all. Granted, like I said, I don't use it for any hard-core stuff.

  • ericfr11 17 hours ago

    I've used SourceTree for years, and for advanced flows, with an external tool for diff. Never failed me from the base, squash, orphans, forks,...

  • damethos 9 hours ago

    This has been my experience as well and I will probably end up paying for a tool because the free ones just don't work smoothly.

hahn-kev 19 hours ago

Do you use the Mac or Windows version?

  • prmph 18 hours ago

    The Mac version

    • tom_ 17 hours ago

      The Windows version is decent too. They seem to be at least partly different code bases, which is nice in some respects, but does mean they're not quite the same. The Mac version is less good about doing git submodule update when required, and sometimes the side panel state can be wrong; the Windows version seems to occasionally forget the state of the delete after applying option when doing git stash pop.

      Despite having some annoying aspects, it is (as if you even needed to ask) still better than using the command line, and, importantly, has yet to annoy me enough to actually switch to something else. Though as an Emacs fan I do have Magit on my list.