# jesseduffield/lazygit

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jesseduffield-lazygit).**

72,698 stars · 2,524 forks · Go · mit

## Links

- GitHub: https://github.com/jesseduffield/lazygit
- awesome-repositories: https://awesome-repositories.com/repository/jesseduffield-lazygit.md

## Topics

`cli` `git` `terminal`

## Description

Lazygit is a terminal-based user interface designed to simplify version control operations through a keyboard-driven workflow. It functions as a visual abstraction layer that bridges native commands with an interactive environment, allowing users to manage repository history, branches, and commit workflows without relying solely on manual command-line input.

The tool distinguishes itself by automating complex version control tasks that typically require multiple manual steps. It provides specialized interfaces for interactive rebasing, commit history amendment, and binary search-based regression analysis. By leveraging the internal reflog, it also enables users to undo or redo recent actions, providing a safety net for repository state changes.

Beyond core version control, the application offers extensive support for managing branching models, worktrees, and custom shell integrations. Users can stage individual lines of code, visualize commit graphs, and define custom commands to automate repetitive tasks. The interface is built to be highly navigable, featuring text-based filtering, customizable keybindings, and persistent directory management to streamline daily development cycles.

## Tags

### Development Tools & Productivity

- [Terminal-Based Version Control Interfaces](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/developer-tools/version-control-ecosystems/terminal-based-version-control-interfaces.md) — Simplifies complex version control operations by mapping them to intuitive keyboard-driven commands within the terminal.
- [Interactive Workflow Managers](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/git-workflow-automation/interactive-workflow-managers.md) — Guides users through intricate tasks like rebasing and bisecting using a clear, interactive visual workflow.
- [Regression Analysis Tools](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/developer-tools/debugging-tools/regression-analysis-tools.md) — Isolates breaking changes by automating the binary search process across the commit history.
- [Keyboard-Driven Interfaces](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/workflow-productivity-enhancers/developer-productivity-utilities/developer-productivity/keyboard-driven-interfaces.md) — Optimizes navigation and task execution with a highly responsive, keyboard-centric control scheme.
- [Terminal-Based Repository Navigators](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/workflow-productivity-enhancers/developer-productivity-utilities/developer-productivity/version-control-enhancements/terminal-based-repository-navigators.md) — Enables efficient traversal of repository branches and commit logs via customizable terminal keybindings. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Rebase Operations](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/git-utilities/rebase-operations.md) — Moves commits onto new base branches using a visual interface that eliminates manual command-line errors. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Commit History Bisecting Tools](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/history-analysis-visualization/commit-history-bisecting-tools.md) — Facilitates binary search operations by allowing users to mark commits as good or bad to isolate regressions. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Commit History Editors](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/history-manipulation-tools/commit-history-editors.md) — Refines project history through visual squashing, rebasing, and patching to maintain a clean commit log.
- [Interactive Rebase Tools](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/history-manipulation-tools/interactive-rebase-tools.md) — Simplifies interactive rebasing by letting users visually reorder, squash, or drop commits. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Interactive Staging Interfaces](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/working-directory-controllers/interactive-staging-interfaces.md) — Allows granular staging of individual lines or hunks of code directly from the terminal view. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Interactive Rebase Automators](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/version-control-automation/interactive-rebase-automators.md) — Automates multi-step rebase sequences by providing a visual interface for managing commit order and conflict resolution.
- [Git Workflow Automations](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/workflow-productivity-enhancers/developer-productivity-utilities/developer-productivity/version-control-enhancements/git-workflow-automations.md) — Streamlines repetitive version control tasks by integrating custom shell commands into a unified workflow.
- [Commit Cherry Picking Tools](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/git-utilities/commit-cherry-picking-tools.md) — Copies specific commits between branches using a simple, keyboard-driven interface. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Git Worktree Management](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/git-utilities/git-worktree-management.md) — Manages multiple concurrent working directories to allow seamless switching between different feature branches. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Patch Management Utilities](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/git-utilities/patch-management-utilities.md) — Enables the creation and application of custom patches to modify, split, or reverse specific commits. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Action Reversion Systems](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/history-analysis-visualization/action-reversion-systems.md) — Tracks repository state changes via internal logs to help users undo or redo complex operations.
- [Repository View Filters](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/repository-view-filters.md) — Filters branches, commits, and file lists using text-based pattern matching to locate specific repository items instantly. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Commit Comparison Tools](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/git-utilities/commit-comparison-tools.md) — Compares code changes by marking a reference point and diffing it against any selected commit or branch. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Commit Graph Visualizers](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/history-analysis-visualization/commit-graph-visualizers.md) — Renders commit history as a navigable graph with color-coded author information and automatic highlighting of parent relationships. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Working Tree Management](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/working-directory-controllers/working-tree-management.md) — Restores a clean working state by discarding uncommitted changes or resetting files directly from the interface. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Worktree Managers](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/working-directory-controllers/worktree-managers.md) — Coordinates multiple concurrent worktrees to enable seamless switching between different feature branches without manual stashing.

### User Interface & Experience

- [Version Control Interfaces](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/version-control-interfaces.md) — Visualizes repository history, branches, and commit workflows through an interactive text-based interface.
- [Terminal-Agnostic Renderers](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/rendering-output-engines/terminal-agnostic-renderers.md) — Maps interface components to character grids to ensure consistent visual layouts across varying terminal environments.
- [Event-Driven Input Handlers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/event-driven-input-handlers.md) — Interprets keyboard input through a centralized event loop to trigger specific state-mutating actions across the interface.
- [Pull Request Integrations](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/version-control-interfaces/pull-request-integrations.md) — Displays remote pull request status directly within the branch view and provides shortcuts to open them in a browser. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))

### Software Engineering & Architecture

- [Branching Model Managers](https://awesome-repositories.com/f/software-engineering-architecture/development-methodologies/engineering-best-practices/development-process-methodologies/development-workflows/branching-model-managers.md) — Supports organized development cycles by providing integrated management for feature, release, and hotfix branches. ([source](https://cdn.jsdelivr.net/gh/jesseduffield/lazygit@master/README.md))
- [Declarative State Managers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/state-management-patterns/declarative-state-managers.md) — Synchronizes the application interface with the underlying repository status through a centralized state model.
