I’m an Australian who jumped from state to state in my childhood, between Victoria, SA, and NSW. I’ve been in Melbourne since late highschool now.
I always loved making board games while I was in primary school and talked to my friends about making video games too, long before I had any idea how to make one. At some point, I stumbled across The Games Factory, a point-and-click framework for building 2D games, and I was hooked from day one.
Although I’ve been procrastinating on my latest ideas for games, I still program in my spare time nearly every day, mostly on dev tools to make my day job as a web dev easier.
In short: the command-line interface to git sucks. I was aware that plenty of GUIs were available for it, but I did’t want to introduce another bulky GUI to my workflow. I tried an existing terminal UI (TUI), but that didn’t really fit my use case, so I thought: why not make my own TUI that’s just right for me? Lo and behold, I wasn’t the only one yearning for that kind of interface.
I simply wanted to learn Go because I knew my work would be using it in some upcoming projects. Lazygit was actually my first Go program.
About four or five core contributors, but it varies quite a bit.
The git command line is tough to use and costs many keypresses to complete basic tasks. Git GUIs, on the other hand, are often clunky and require switching to a new application. Lazygit strikes a balance between the two extremes, allowing you to perform git commands from the comfort of the terminal, with a UI that lets you see at a glance the state of your repo and the effect of your actions.
Check out the repo’s readme on installation instructions. For mac users, you can
brew install lazygit.
File-tree navigation, 24-bit colour support, and hopefully, at some point a better integration with Github.
There are some cases where international unicode characters cause rendering issues. I’m in the process of upgrading gocui, our underlying rendering framework, which might help with that.
Somebody who wants to move very fast when writing code, though even juniors who aren’t striving to be speed demons have found value in lazygit’s ease of use. Typical use cases include staging/unstaging files quickly, line-by-line staging, interactive rebases, undoing things in your commit log, and invoking custom scripts.
I accept donations through GitHub Sponsors at https://github.com/sponsors/jesseduffield. Speaking of which, while I’m here, I want to say thanks to everybody who’s donated so far! It means a lot.