jesseduffield/lazygit

▲ 49 stars today★ 83,010⑂ 3,069

simple terminal UI for git commands

About jesseduffield/lazygit

jesseduffield/lazygit is an open-source project on GitHub, mainly written in Go. simple terminal UI for git commands It currently holds 83,010 stars and 3,069 forks with 1,051 open issues, and was last pushed on 2026-10-07 (repository created 2018-05-19).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #65 with 49 new stars today.

GitHub Repository Details

Repository jesseduffield/lazygit · default branch master · size 158355 KB · watchers 338 · source: GitHub REST API and repository README

README

Special thanks to:

https://github.com/jesseduffield/lazygit/blob/HEAD/Warp
Warp, the intelligent terminal
Available for macOS and Linux
Visit warp.dev to learn more.


https://github.com/jesseduffield/lazygit/blob/HEAD/Tuple
Tuple, the premier screen sharing app for developers on macOS and Windows.



https://github.com/jesseduffield/lazygit/blob/HEAD/Subble
I (Jesse) co-founded Subble to save your company time and money by finding unused and over-provisioned SaaS licences. Check it out!


A simple terminal UI for git commands

GitHub Releases Go Report Card Codacy Badge Codacy Badge golangci-lint GitHub tag homebrew

Sponsors

Maintenance of this project is made possible by all the contributors and sponsors. If you'd like to sponsor this project and have your avatar or company logo appear below click here. 💙

https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Mark Lussierhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Dean Herberthttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Peter Bjorklundhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Oliver Güntherhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Pawan Dhananjayhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar:https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Carsten Gehlinghttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Alihttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Chau Tranhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: matejcikhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: theAverageDev (Luca Tumedei)https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Erik Scraffordhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar:https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Alex Stelmachonakhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Pedro Pombeirohttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Burgy Benjaminhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Joe Klemmerhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Tobias Lütkehttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Ben Beaumonthttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar:https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Hollyhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Tom Lanserhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Casey Boettcherhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Jeff Forcierhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar:https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Maciej T. Nowakhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: James Hillyerdhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Yuryhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Olivier reivilibrehttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Braden Steffaniakhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Sebastianhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Andy Slezakhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Martin Kockhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Daniel Kokotthttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Jan Heijmanshttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Kevin Nowaldhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Ethan Lihttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Robert Forlerhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Jan Zenknerhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar:https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Frederick Morlockhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Maximilian Langenfeldhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Alejandrohttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar:https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Neil Lamberthttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: David Heinemeier Hanssonhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Ethan Fischerhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Terry Taihttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Adam Roesnerhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Tim Morganhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Maksym Shypulniakhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Kovács Ádámhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Patricio Serranohttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Kirihttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Steven Masinihttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: John Even Bjørnevikhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Michael Obersthttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Adam Trepanierhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Kenth Fagerlundhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Julien Tardothttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Ellord Tayaghttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Edgar Post-Buijshttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Pierre Springhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Zac Clayhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Thomas Müllerhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Carl Assmannhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Moody Liuhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Michael Howardhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Lasse Bloch Lauritsenhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Alexander Slavschikhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Aidan Gaulandhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Maksym Bieńkowskihttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Joshua Wootonnhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar:https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Simon Sandvik Leehttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Thomas Gilberthttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Szymon Muchahttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Unnawut Leepaisalsuwannahttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Bret Wortmanhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Simon Cardonahttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: André Lameirinhashttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Scott Velezhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: justinhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Mayfieldhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Soma Holidayhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Drew Councilhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Dessalineshttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Asuka Minatohttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Felipe Ospinahttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Riccardo Novagliahttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Robert Buchbergerhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Gintshttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: housekeeperhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Yuriihttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Grigorii K. Shartsevhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar:https://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Francis Meetzehttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Carlos Ehttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Darren Spurgeonhttps://github.com/jesseduffield/lazygit/blob/HEAD/User avatar: Nestor Custodio

Elevator Pitch

Rant time: You've heard it before, git is _powerful_, but what good is that power when everything is so damn hard to do? Interactive rebasing requires you to edit a goddamn TODO file in your editor? _Are you kidding me?_ To stage part of a file you need to use a command line program to step through each hunk and if a hunk can't be split down any further but contains code you don't want to stage, you have to edit an arcane patch file _by hand_? _Are you KIDDING me?!_ Sometimes you get asked to stash your changes when switching branches only to realise that after you switch and unstash that there weren't even any conflicts and it would have been fine to just checkout the branch directly? _YOU HAVE GOT TO BE KIDDING ME!_

If you're a mere mortal like me and you're tired of hearing how powerful git is when in your daily life it's a powerful pain in your ass, lazygit might be for you.

Table of contents

Lazygit is not my fulltime job but it is a hefty part time job so if you want to support the project please consider sponsoring me

Features

Stage hunks or individual lines

Press 0 on a changed file to focus its diff in the main view. The selection covers a whole hunk to begin with, so ` stages that hunk and moves on to the next one. When you want only part of a hunk, press a for line-by-line selection and v to select a range of lines. What you staged shows up in the pane below. Press to move between the two panes; unstages in the lower one. Press c` to commit without leaving the diff.

Interactive Rebase

Press i to start an interactive rebase. Then squash (s), fixup (f), drop (d), edit (e), move up (ctrl+k) or move down (ctrl+j) any of the TODO commits, before continuing the rebase by bringing up the rebase options menu with m and then selecting continue.

You can also perform any of these actions as a once-off (e.g. pressing s on a commit to squash it) without explicitly starting a rebase.

This demo also uses shift+down to select a range of commits to move and fixup.

Cherry-pick

Press shift+c on a commit to copy it and press shift+v to paste (cherry-pick) it.

Bisect

Press b in the commits view to mark a commit as good/bad in order to begin a git bisect.

Nuke the working tree

For when you really want to just get rid of anything that shows up when you run git status (and yes that includes dirty submodules) kidpix style, press shift+d to bring up the reset options menu and then select the 'nuke' option.

Amend an old commit

Pressing shift+a on any commit will amend that commit with the currently staged changes (running an interactive rebase in the background).

Filter

You can filter a view with /. Here we filter down our branches view and then hit enter to view its commits.

GitHub Stars & Activity

83,010Stars
3,069Forks
1,051Open issues
GoLanguage

GitHub Popularity

GitHub stars83,010
Forks3,069
Open issues1,051
Primary languageGo
LicenseMIT
Stars gained today49
Created2018-05-19
Last pushed2026-10-07

Trending History

Daily boardrank #65 · ▲ 49 stars

Related GitHub Projects

1

ollama / ollama

Go★ 182,413⑂ 18,166▲ 128 stars
→
2

tailscale / tailscale

Go★ 37,277⑂ 3,299▲ 46 stars
→
3

docker / docker-agent

Go★ 4,232⑂ 494▲ 766 stars
→
4

mattpocock / skills

Shell★ 281,061⑂ 23,557▲ 1,774 stars
→
5

jackfrued / Python-100-Days

Jupyter Notebook★ 186,953⑂ 55,750▲ 43 stars
→
6

msitarzewski / agency-agents

Shell★ 158,336⑂ 25,541▲ 344 stars
→
7

Genymobile / scrcpy

C★ 151,565⑂ 13,908▲ 202 stars
→
8

ggml-org / llama.cpp

C++★ 130,546⑂ 24,204▲ 123 stars
→

More Trending Repositories