Live data from Hacker News

The lazy Git UI you didn't know you need

bwplotka.dev

71–80 of 224 posts

Re: The lazy Git UI you didn't know you need

#71
post #7

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…

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.

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

Re: The lazy Git UI you didn't know you need

#72
People often avoid it because of the name, but Github desktop is pretty amazing. It works great with all git repos (including ones not on Github), and makes it super easy to amend commits and cherry-pick files/lines to include. Everything has handy names, and all the complex operations have text explaining what they do.

GH Desktop's merging, conflict stuff, and (lack of) graph leave much to be desired, but it's already 1000 times better than the git cli. Whenever I have someone who hasn't used git before joining a project, I always get them to use GH Desktop - it's easier for them to understand what's happening, and reduces the messes they cause compared to running random git commands from stack overflow.

Re: The lazy Git UI you didn't know you need

#73

Earlier quoted context omitted.

I have tried jj several times but I feel like it slows me down significantly because I can’t grok the workflow. I like to do a bunch of changes then quickly select them in my editor and commit them, breaking them up into different commits to keep them organized. With jj’s lack of editor integration, I don’t know how to do this with the cli alone so I end up with bigger messier commits.

You want "jj commit -i". You'll get an interface that lets you choose files, chunks, or lines to commit.

Or the shorthand: jj ci -i

Or if you don't care to set a commit message just yet: jj split -i

Or if you want to defer making sure each commit has the right content until later, just use jj new, and then later use jj squash and jj split to make the commits have sensible changes, and jj desc to set the descriptions.

Re: The lazy Git UI you didn't know you need

#74

I still prefer tig[1]. It has probably less features, but also a less cluttered UI and slightly faster interface. But the main use I get from it is for incremental index adding, so maybe not as much as OP. [1] https://jonas.github.io/tig/

Me too, it’s been my tool of choice for staging hunks for more than 15 years now.

Re: The lazy Git UI you didn't know you need

#75
post #20

I'm stuck on a mac these days and I miss Git Extensions, my favorite Windows git UI

There are several really good Git clients for macOS:

1. Fork: https://git-fork.com

2. Kaleidoscope: https://kaleidoscope.app

3. GitUp: https://gitup.co

4. Tower: https://www.git-tower.com/mac

Re: The lazy Git UI you didn't know you need

#77
post #7

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…

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.

Re: The lazy Git UI you didn't know you need

#78
post #25
post #7

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…

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

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.

Re: The lazy Git UI you didn't know you need

#79
post #8
post #5

I was a big fan of a good keyboard-driven git TUI like magit, neogit, lazygit, etc... (as long as you learn the CLI first and understand it). Now I no longer directly use git, but instead use jujutsu (jj). Once I became very proficient in the jj cli, I picked up jjui: https://github.com/idursun/jjui Also, as splitting commits is an extremely frequent operation, this neovim plugin is really nice: https://github.com/ju…

Thank you for the many tool links! You seems to know this space well. I have come to pick your brain for more. I have been searching for a while for good tools to split/regroup diffs in a patch series. hunk.nvim looks interesting. Do you know of similar/competing tools? I frequently hit a problem where removing a spurious hunk from an old commit causes cascading conflicts in all subsequent commits. Are there tools to…

Are you looking for solutions within git or jj?

In my experience with jj when resolving a conflict, as long as I do it in the earliest change, I will only have to do it once.

Git has the rerere setting [0] which reduces the need to resolve the same conflict over and over

0: https://git-scm.com/book/en/v2/Git-Tools-Rerere

Re: The lazy Git UI you didn't know you need

#80
post #65

Am I the only one who simply doesn't mind Git's CLI? Sure, it's rough around the edges, but I know those edges well. I sometimes do need to look up how to do something, but those cases are rare. Over the years I've accumulated about a dozen shell aliases and a modest `.gitconfig`, and along with a couple of helper tools[1][2], I can do 90% of what I need Git for in seconds. I truly don't need a fancy TUI, GUI, or any…

I completely agree, and I would add that in just about any dev role beyond being a junior it's so common to need to work efficiently without much of a dev environment anyway.

There's just no point in fighting this battle. I will admit it's sometimes nice to have fancy tools, but they're just that. I don't get the need to make a hobby out of it when there's so much other stuff to do.

Post reply on HN