← All open source projects

Lazygit

jesseduffield/lazygit

Lazygit is a terminal UI for Git that speeds up commits, rebases, cherry-picks, staging, and history navigation.

Forks 2,859
Author jesseduffield
Language Go
License MIT
Synced 2026-06-11

What it is

Lazygit is a terminal application for working with Git. It does not replace Git or introduce a new repository format: the normal Git commands remain underneath, while daily actions are collected into one keyboard-driven screen.

The jesseduffield/lazygit repository has been on GitHub since 2018. The project is written in Go and distributed under the MIT license. Its appeal is straightforward: Git is powerful, but the command line often requires remembering flags, copying commit hashes, and switching between `status`, `log`, `diff`, and an editor.

What is inside

The project highlights line staging, interactive rebase, cherry-pick, bisect, worktrees, undo, a commit graph, filters, and custom commands. Lazygit is therefore not just a status viewer; it covers much of the everyday branch-and-change workflow.

A normal launch

This example shows the idea: check the repository with regular Git, then open Lazygit in the same directory and handle staging, commits, rebases, or history navigation through one interface.

Language: Bash
git status
lazygit

Why it is useful

The main benefit is context. When files, diffs, history, and actions are visible together, it is easier to see what is staged, which branch is active, and which commit you are about to edit.

That matters most for partial staging, editing an older commit, moving a commit between branches, or inspecting conflicts. All of this is possible with raw Git, but Lazygit removes much of the mechanical work.

Strengths and tradeoffs

The project is strongest for people who already understand Git. It does not hide the Git model completely; staged and unstaged changes, commits, branches, stash, and worktrees remain the same concepts.

The tradeoff is that Lazygit does not teach Git from zero and cannot make a dangerous rebase safe by itself. A beginner still needs to understand the index, branches, conflicts, and force pushes. The best use is as an accelerator, not as a substitute for understanding version control.