Comment by _virtu

2 days ago

The commit workflow was what kept me locked in to the ecosystem for so long. LazyGit was so good that it convinced me I didn’t need JetBrains anymore. If you love the workflow with JB for commits check out LazyGit. It’s a TUI so you can use it in any editor without much friction.

I'm kinda reading this with disbelief. Are there people whose primary use case for IDE is... git gui?

  • I do almost everything git manually at the CLI. But the Jetbrains IDEs have a fantastic GUI git merge tool, and I also like the local git diff UI. Add in integrated blame mode, ability to pull up version-diff files, and that sort of thing.

    It's not part of my daily driver toolbox, but they do get used a lot by me.

    • You made me realize that I actually do use it, since I often look at git blame and the past changes.

      And I like the (recent?) update in which the changes from current commit (not only stage) are coloured.

      2 replies →

  • Remember this when you're thinking about the average commenter's opinion on anything technical.

    • Remember what? That people have different preferences, workflows and methods of staying productive?

      Someone voiced that they liked a certain tool for a certain feature and suddenly we are judging them for it? I like that people share their thoughts and opinions.

    • If using the git command line makes you feel like a better developer than me that's fine ;)

  • I think you're thinking about git as a separate thing from the IDE.

    I love using IJ + git because there are no seams in between edit and commit. For instance, with IJ, I could easily split every other line of a change into separate commits.

    Maybe there's a way in git to stage only certain parts of a diff, but I'd have to go an learn another flag or command that I'm going to forget by the next time I need to do it again.

    Also with IJ, I just glance at my main branch tab and the highlighting tells me what commits aren't in my checked out feature branch.

    Two small examples but there are many more and it adds up.

    • git add -i is the thing you'd have to learn.

      I do that at the CLI most of the time and I'd say I'm quite experienced with it, but I still prefer IntelliJ when it gets complicated.

  • Jetbrains' implementation is (was?) just that good, yes (combined with local history).

  • I've been using their git diff/checkin tools built into RubyMine since I started with git. Going on about 12-13 years now. Their conflict resolution UI is so much easier than editing text contents between the >>>>s and <<<<s.

  • To be fair, VS Code git implementation is really off-putting if you've used something good.

    • Personally I love it and find it very intuitive.

      It allows you to do stuff so much faster than having to type everything manually into the terminal. Also really enjoy the "Undo Last Commit" feature and how I can easily see all modified files at once and shuffle around stuff between the staging area.

      1 reply →

  • Honestly, the git implementation in PyCharm is better than any git app I've used, including lazygit (which I like and is my go-to when not in PyCharm).

  • Git is just that bad, huh? The best backhanded endorsement of mercurial I've seen so far.

Or if you prefer a GUI (still separate app, so works anywhere, too): https://git-cola.github.io/

  • Graphical interface won't work well inside WSL, that's why I dropped my subscription on GitKraken and start using lazygit. lazygit simply works in almost any environment, and it works extremely well even if you are not into terminal stuff.

    • Yeah, that’s the power of TUI. I would probably give it a go, too, but Git Cola works for me on Linux and Mac without too many issues.

      (By “works anywhere”, I meant you can use it with any IDE or editor, or just run it from terminal, though it is cross-platform and should work on Windows, just not sure how well it would play with WSL.)

      5 replies →

    • Really? While there its certainly slightly annoying because they have the "double menu bar" if they use a non-standard one like the jetbrains ides do... I feel like wsl gui support has essentially become a "solved issue" for a while now.

      3 replies →

Just found LazyGit as well. it's amazing!

Also like Sublime Merge, if you want a GUI (paid though)

Fortunately JB broke that addiction for my by first moving the commit dialog behind an option, and then removing it completely. If I have to learn a new workfrow, I might as well learn a new tool

  • Currently the plugin version still works but they made it clear it will be unmaintained in the future.