# LazyGit LazyGit is a terminal-based user interface (TUI) for [[Git]] written in Go by [[Jesse Duffield]]. It provides a visual, keyboard-driven way to perform Git operations without memorizing complex commands. The interface shows files, branches, commits, and stashes in separate panels, making repository management intuitive. LazyGit simplifies complex Git workflows like interactive rebasing, cherry-picking, and conflict resolution through its visual interface. It's particularly useful for developers who prefer staying in the terminal but want a more visual Git experience than the command line provides. ## Key Features - **Visual staging**: Stage individual lines or hunks interactively - **Branch management**: Create, checkout, merge, rebase visually - **Interactive rebase**: Squash, reorder, edit commits with ease - **Conflict resolution**: Side-by-side diff view for merge conflicts - **Stash management**: Save and apply stashes visually - **Commit graph**: Visual branch history and relationships - **Custom commands**: Extensible with user-defined shortcuts ## Installation ```bash # macOS brew install lazygit # Arch Linux pacman -S lazygit # Ubuntu/Debian sudo add-apt-repository ppa:lazygit-team/release sudo apt update && sudo apt install lazygit # Go install go install github.com/jesseduffield/lazygit@latest ``` ## Basic Usage ```bash # Launch in current repository lazygit # Launch in specific repository lazygit -p /path/to/repo ``` ## Key Bindings | Key | Action | |-----|--------| | `space` | Stage/unstage file | | `c` | Commit | | `p` | Pull | | `P` | Push | | `b` | Branch menu | | `?` | Help | ## References - https://github.com/jesseduffield/lazygit ## Related - [[Git]] - [[Linux]] - [[GitHub]] - [[GitLab]]