frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

The lazy Git UI you didn't know you need

https://www.bwplotka.dev/2025/lazygit/
135•linhns•4h ago

Comments

varunramesh•2h ago
I use lazygit when I want to stage specific lines rather than an entire file.
magdyks•2h ago
lazygit rules!
aeve890•2h ago
I'd recommend lazydocker, from the same author IIRC. Awesome TUI.
tcoff91•2h ago
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/julienvincent/hunk.nvim

Also this neovim plugin is amazing for resolving jj conflicts: https://github.com/rafikdraoui/jj-diffconflicts

Now with jj instead of git I edit the commit graph as effortlessly as if I am moving lines of code around a file in my editor.

dizzant•2h ago
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 propagate hunk removal into the future without the manual conflict-resolution pain?

Thanks again!

stavros•1h ago
Not the GP, but I might recommend Jujutsu for that, try it and see. It does the right thing when you resolve commits, and it propagates them to git. However, I'm not sure if it'll work, try it and see.
stavros•1h ago
Jujutsu is much better than git, and I've switched to it completely, but I do still use lazygit for one thing: It has better diff viewing, it separates the diffs by file and they look nicer. It's the only thing keeping me on lazygit, as jjui is much better otherwise.
onraglanroad•1h ago
Git doesn't fundamentally work with diffs (patches). It stores the complete file and generates a diff.

So you can use any diff tool you like with git, and I presume also with JJ. Look for the setting.

Edit: in git it's the diff.external setting

stavros•59m ago
I know I can. I want to use jjui, but its UI isn't as good, so I use lazygit.
SAI_Peregrinus•41m ago
There's also lazyjj. I haven't really bothered with a TUI yet so can't say which has nicer diffs, but you might try it.
stavros•36m ago
I've tried lazyjj, but jjui was better (at least, back when I tried it).
Zambyte•2h ago
The less I use git directly, the more convinced I am that git is an absolutely awful interface to git repositories. I have been using jj for about two years now, and I literally cannot imagine going back to using the git cli. I have not used lazygit, but if you find it interesting, I say please go for it.

The please is because I am tired of fixing issues created by people being confused by git. Just use anything else than the git cli, it's probably better.

danielhep•5m ago
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.
prmph•2h ago
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.

skydhash•1h 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.
hahn-kev•1h ago
Do you use the Mac or Windows version?
prmph•34m ago
The Mac version
9dev•58m ago
Have you tried the Jetbrains IDE git client yet? It hits the perfect spot for me.
CamJN•48m ago
I find both Fork and Tower to be much better than SourceTree, have you only tried free tools?
prmph•34m ago
I have dabbled in those tools. Still did not change my opinion.
Sammi•31m 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.
rc_kas•45m 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•30m 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.
darknavi•16m 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/...

IshKebab•2m 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.

nice_byte•2h ago
the only good git GUI that exists is Fork. Unfortunately, it doesn't run natively on Linux, although some people have had luck running it under Wine.

I found lazygit specifically so bad to the point that I was better off typing in git commands into the terminal manually like some sort of caveman. Somehow, lazygit has found a way to make git even more confusing and user hostile than it already is, which is a significant achievement.

Using it was a harsh reminder of what people running emacs or vim for the first time have to go through.

This idiotic ui paradigm where you have to actively learn to use what should be simple software by memorizing commands and shortcuts needs to die off. It's mind bogglingly inefficient and disrespectful of user's time.

Just think about it - I've literally never had to open Fork's manual (I am not even sure it has one) whereas in lazygit it is utterly impossible to do the most basic things without referring to the manual. Why do we collectively keep tolerating these shitty tools?

WolfeReader•1h ago
As much as I heartily disagree with most of what you wrote - and seeing all the downvotes, I'm not the only one - there is a nugget of truth in what you wrote, which answers a lot of your complaints.

"Using it was a harsh reminder of what people running emacs or vim for the first time have to go through."

The benefit of keyboard-driven programs like Vim is that you're trading an initial learning curve for a vastly more efficient experience once the learning is done+.

Mouse-driven tools like VS Code don't demand that the user learns them. Keyboard shortcuts there are optional, since practically everything is in a menu or a UI that can be moused to. This adds on seconds per interaction, adding up quickly over time.

+And the "learning" for these tools can be shortened dramatically by keeping a printed-out cheatsheet. For Vim this can be a huge lifesaver; I made one for magit as well, back before I switched full-time to JJ.

krapht•40m ago
> The benefit of keyboard-driven programs like Vim is that you're trading an initial learning curve for a vastly more efficient experience once the learning is done+.

I have never been rate-limited by my keyboard input speed. I have lost many minutes of time daily looking up cheatsheets for terminal tools that I use occasionally.

Ironically, when I see what impact AI has had on my programming, the biggest has been in saving me time crafting command line invocations instead of browsing <tool> --help and man <tool>.

nice_byte•27m ago
> The benefit of keyboard-driven programs like Vim is that you're trading an initial learning curve for a vastly more efficient experience once the learning is done+.

This is simply not true and I say this as a life long vim user. The only reason I have vim mode enabled in all the editors that support it, is the fact that it's immensely difficult to retrain muscle memory accumulated from a decade+ time sunk in that editor. Nothing about vim or any of these other tools being keyboard driven, make me more productive in a way that matters.

> Mouse-driven tools like VS Code don't demand that the user learns them.

Good. That's how all software should be. It's a means to an end, not the center of the universe. The whole reason for bringing a UI layer into all of this in the first place is freeing up my brain from having to deal with git's bullshit.

> Keyboard shortcuts there are optional, since practically everything is in a menu or a UI that can be moused to.

The shortcuts are still there if you care to learn them - it should absolutely not be a prerequisite.

> +And the "learning" for these tools can be shortened dramatically by keeping a printed-out cheatsheet.

Or, I could use some actually well designed software and save myself some printer ink :-)

CamJN•42m ago
Tower is also very good. Probably just due to having used it more, I prefer it over Fork, but I can get by if I have to use a computer not licensed for Tower.
submeta•1h ago
Lazygit, WezTerm, NeoVim, Yazi (TUI file manager) are a fantastic combination! I have a tmuxniator config file for every project I work on. And open a tab in WezTerm, run „mx projectname“, it opens a split for Yazi, one for Lazygit, one for neovim, and one for my agentic coding tool. Lovely setup, super fast, all in the terminal.
bdewberry•1h ago
Simple, Clean, CLI, Vim navigation

Lazy git checks off a lot of boxes. Easy tool to adopt to speed up and simplify your git workflow

nicois•1h ago
A large percentage of git users are unaware of git-absorb (https://github.com/tummychow/git-absorb). This complements just about any git flow, vastly reducing the pain of realising you want to amend your staged changes into multiple commits. This sits well alongside many TUIs and other tools, most of which do not offer any similar capability.
skydhash•1h ago
I see the usefulness. But my client is magit, and committing and rebasing are so quick that this will reduce perhaps 30 seconds to one minute to my workflow. And I do not like most rust tools, because they're too dependency heavy.
kccqzy•27m ago
Definitely. The instant fixup feature is just three keystrokes away (s c F). The only thing this helps is when you don't want to spend the extra brain cycles to figure out which commit to fixup on.
1718627440•1h ago
It's in the GNU/Debian repo and I guess in a lot of other distros as well.
jannniii•1h ago
Yes! Godspeed to lazygit!

Really happy to see it featured here, I became a convert couple of years ago after switching to Astronvim (lazyvim is bundled with it).

user432678•1h ago
Maybe one day, but after almost 15 years of using handful of git aliases I just can’t switch to anything else.
xeromal•1h ago
I'm stuck on a mac these days and I miss Git Extensions, my favorite Windows git UI
mariusor•56m ago
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/

rckt•51m ago
Personally I just couldn't see all the extra layers as comfortable tools. It's a very rare thing that I need to see branches, relation between them etc. Using cli has always been the most reliable and simple way for me.The only git tool I need apart from cli is a convenient conflict resolver.
Terr_•15m ago
Yeah: Most use-cases for me split into:

1. Choosing what to commit and committing it, fixups, autosquash

2. Conflict resolution and history investigation

It's very rare I've wanted a separate tool for the first, and the second calls for a GUI tool.

_--__--__•8m ago
Lazygit is the only way I review PRs these days because it is trivial to step through a file commit by commit when that is necessary (which maybe says something about the quality of the PRs I'm reviewing...). They also won me over by using Legend of the Galactic Heroes references in the github readme gifs.
_blk•4m ago
Maybe I missed it but I couldn't find where to install it from and autocomplete doesn't resolve to a debian package either...

https://github.com/jesseduffield/lazygit?tab=readme-ov-file#...

So with a newer non-LTS ubuntu you can just apt install lazygit, with 24.04 it's

``` LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/..." | \grep -Po '"tag_name": "v\K[^"]') curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/download/v..." tar xf lazygit.tar.gz lazygit sudo install lazygit -D -t /usr/local/bin/ ```

jmkmay•3m ago
Something not mentioned in the article which has changed the way I interact with git repos (and the reason I will never not use LazyVim until something better comes along) is just how well the system plays with tmux floating panes.

I have it so that anytime I press ctrl-g in a git repo, I open a floating tmux pane in my current working directory. This might sound "whatever", but it means I don't have to actually be inside neovim or "switch" to the LazyGit UI. It just overlays it on top of whatever I'm doing at the moment in the terminal.

Makes for the most fluid, streamlined git experience ever if you primarily live in the terminal.

Writing your own BEAM

https://martin.janiczek.cz/2025/11/09/writing-your-own-beam.html
71•cbzbc•1d ago•7 comments

Unexpected things that are people

https://bengoldhaber.substack.com/p/unexpected-things-that-are-people
341•lindowe•6h ago•176 comments

Fei Fei Li: Spatial Intelligence is AI’s Next Frontier

https://drfeifei.substack.com/p/from-words-to-worlds-spatial-intelligence
33•mkirchner•1h ago•5 comments

TTS Still Sucks

https://duarteocarmo.com/blog/tts-still-sucks
12•speckx•29m ago•2 comments

The lazy Git UI you didn't know you need

https://www.bwplotka.dev/2025/lazygit/
135•linhns•4h ago•46 comments

Error ABI

https://matklad.github.io/2025/11/09/error-ABI.html
45•todsacerdoti•19h ago•3 comments

Zeroing in on Zero-Point Motion Inside a Crystal

https://physics.aps.org/articles/v18/178
10•lc0_stein•50m ago•0 comments

Memory Safety for Skeptics

https://queue.acm.org/detail.cfm?id=3773095
38•steveklabnik•3h ago•21 comments

Using Generative AI in Content Production

https://partnerhelp.netflixstudios.com/hc/en-us/articles/43393929218323-Using-Generative-AI-in-Co...
32•CaRDiaK•2h ago•5 comments

Omnilingual ASR: Advancing automatic speech recognition for 1600 languages

https://ai.meta.com/blog/omnilingual-asr-advancing-automatic-speech-recognition/?_fb_noscript=1
39•jean-•3h ago•6 comments

Head in the Zed Cloud

https://maxdeviant.com/posts/2025/head-in-the-zed-cloud/
36•todsacerdoti•7h ago•4 comments

Building a high-performance ticketing system with TigerBeetle

https://renerocks.ai/blog/2025-11-02--tigerfans/
53•jorangreef•2d ago•7 comments

Benchmarking leading AI agents against Google reCAPTCHA v2

https://research.roundtable.ai/captcha-benchmarking/
74•mdahardy•5h ago•57 comments

Launch HN: Hypercubic (YC F25) – AI for COBOL and Mainframes

62•sai18•5h ago•42 comments

Registered OAuth Parameters

https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#parameters
11•mooreds•6d ago•2 comments

Synesthesia helps me find four-leaf clovers (2023)

https://matthewjamestaylor.com/synesthesia-four-leaf-clovers
47•iansteyn•1w ago•27 comments

Canadian military will rely on public servants to boost its ranks by 300k

https://ottawacitizen.com/public-service/defence-watch/canadian-military-public-servants
53•Teever•5h ago•115 comments

Vibe Code Warning – A personal casestudy

https://github.com/jackdoe/pico2-swd-riscv
179•jackdoe•10h ago•106 comments

Pose Animator – An open source tool to bring SVG characters to life (2020)

https://blog.tensorflow.org/2020/05/pose-animator-open-source-tool-to-bring-svg-characters-to-lif...
125•jerlendds•6d ago•13 comments

Redmond, WA, turns off Flock Safety cameras after ICE arrests

https://www.seattletimes.com/seattle-news/law-justice/redmond-turns-off-flock-safety-cameras-afte...
172•dredmorbius•3h ago•157 comments

Interesting SPI Routing with iCE40 FPGAs

https://danielmangum.com/posts/spi-routing-ice40-fpga/
84•hasheddan•8h ago•6 comments

LLMs are steroids for your Dunning-Kruger

https://bytesauna.com/post/dunning-kruger
257•gridentio•6h ago•214 comments

How cops can get your private online data

https://www.eff.org/deeplinks/2025/06/how-cops-can-get-your-private-online-data
226•jamesgill•6h ago•49 comments

Asus Ascent GX10

https://www.asus.com/networking-iot-servers/desktop-ai-supercomputer/ultra-small-ai-supercomputer...
173•jimexp69•6h ago•161 comments

Time to start de-Appling

https://heatherburns.tech/2025/11/10/time-to-start-de-appling/
246•msangi•7h ago•186 comments

Reminder to passengers ahead of move to 100% digital boarding passes

https://corporate.ryanair.com/news/ryanair-issues-reminder-to-passengers-ahead-of-move-to-100-dig...
116•teekert•6h ago•243 comments

Rewilding the Internet

https://www.protein.xyz/rewilding-the-internet/
34•thinkingemote•1w ago•19 comments

Marble Fountain

https://willmorrison.net/posts/marble-fountain/
834•chris_overseas•1d ago•88 comments

Installing and using HP-UX 9

https://thejpster.org.uk/blog/blog-2025-11-08/
112•TMWNN•13h ago•49 comments

Beets: The music geek’s media organizer

https://beets.io/
232•hyperific•15h ago•95 comments