LazyGit 是一个用 Go 写的终端 Git UI,截至本文写作时在 GitHub 上收获约 8.3 万 Star,master 分支最近一次提交在 2026 年 10 月,仍在活跃维护。它把 git 的所有日常操作——add、commit、rebase、merge、stash、reset、cherry-pick——全部变成键盘可达的 TUI,让你不用再记一堆命令行参数。
为什么需要它?git 本身很强大,但日常用起来很痛:交互式 rebase 要编辑 TODO 文件、分 hunk stage 要逐块走 patch、切分支时忘 stash 导致冲突。LazyGit 的卖点就是把这些操作用全屏 TUI 可视化——左边文件树、中间 diff、右边提交历史,按一下空格就 stage,按 c 就 commit,按 v 就能可视化 rebase。本文从零开始,把 LazyGit 在 macOS / Linux / Windows 上装好、讲清楚核心操作。
一、项目介绍与适用场景
LazyGit 是一个全屏终端 TUI,你在任意 Git 仓库目录敲 lazygit,进入一个分栏界面。适合:
- 命令行党:喜欢终端工作流,但不想背 git 命令参数。
- 高频 rebase 用户:可视化交互式 rebase 比编辑 TODO 文件快十倍。
- 代码评审者:在终端里逐 hunk 看 diff、stage、commit。
- 多分支开发者:可视化切分支、cherry-pick、merge。
二、核心功能逐条拆解
- 分 hunk / 分文件 stage:在 diff 视图里按
a切行级选择,按v选范围,按空格 stage。 - 交互式 rebase:可视化 rebase,不用编辑 TODO 文件。
- Undo / Redo:按
u撤销上一次 git 操作,git 操作失误不怕。 - Stash 管理:可视化 stash 列表、apply、drop。
- Cherry-pick:从提交历史里选 commit 直接摘到当前分支。
- Merge / Rebase 冲突解决:冲突文件分栏展示,逐个选 ours / theirs。
- Custom Commands:在配置里写自定义 git 命令,一键触发。
- Git Flow 支持:内置 git flow 工作流快捷键。
- 跨平台:macOS / Linux / Windows(WSL / Scoop / Choco / Winget)全支持。
三、全套官方链接
| 类型 | 链接 |
|---|---|
| GitHub 仓库 | https://github.com/jesseduffield/lazygit |
| Releases | https://github.com/jesseduffield/lazygit/releases |
| 官方文档 | https://github.com/jesseduffield/lazygit/tree/master/docs |
| License | MIT |
四、硬件与环境前置要求
LazyGit 是单个 Go 编译的二进制,资源占用极小:
- 操作系统:任意现代 Linux / macOS / Windows。
- Git:必须先装 git(LazyGit 是 git 的前端,不替代 git)。
- 终端:任意支持真彩色的现代终端(iTerm2、Alacritty、kitty、Windows Terminal 等)。
- 内存 / CPU:< 50MB,秒启动。
五、多平台安装步骤
5.1 macOS(Homebrew)
官方 README 原文:
brew install lazygit
MacPorts:
sudo port install lazygit
5.2 Debian / Ubuntu
sudo apt install lazygit
5.3 Arch Linux
sudo pacman -S lazygit
5.4 Fedora / RHEL
sudo dnf copr enable dejan/lazygit
sudo dnf install lazygit
5.5 Windows
Scoop:
scoop bucket add extras
scoop install lazygit
Chocolatey:
choco install lazygit
Winget:
winget install lazygit
5.6 Go 安装(任意有 Go 环境的系统)
go install github.com/jesseduffield/lazygit@latest
5.7 其他 Linux 发行版
- Void Linux:
sudo xbps-install -S lazygit - Solus:
sudo eopkg install lazygit - Gentoo:
sudo emerge dev-vcs/lazygit - openSUSE:官方仓库有 lazygit
- NixOS:
nix-env -iA nixos.lazygit
5.8 手动安装二进制
从 https://github.com/jesseduffield/lazygit/releases 下载对应平台的 tar.gz / zip,解压后:
sudo install lazygit -D -t /usr/local/bin/
六、配置文件全部参数解释
LazyGit 的配置文件在 ~/.config/lazygit/config.yml(首次启动后自动生成默认模板)。常用配置:
user:
name: Your Name
email: you@example.com
gui:
theme:
activeBorderColor:
- green
- bold
showRandomTip: true
sidePanelWidth: 0.33
git:
paging:
color: true
commit:
signOff: false
官方文档(docs/ 目录)有完整配置项说明。Custom Commands 是高级玩法:在 config.yml 里写自定义 git 命令,绑快捷键一键跑。
七、启动、后台与日常使用
7.1 启动
cd your-git-repo
lazygit
预期:进入全屏 TUI,左边文件树、中间 diff、右边提交历史。
7.2 退出
按 q 退出 LazyGit,回到 shell。注意:LazyGit 是交互式工具,本身不是后台服务,不需要常驻。
7.3 修改目录后退出
官方 README 提到「Changing Directory On Exit」——如果你在 LazyGit 里切了目录,退出时可以让 shell 跟到那个目录(需要配合 shell 包装脚本,见官方文档)。
八、功能实操教程
第 1 步:按 5.1 / 5.2 装好,cd 到一个 Git 仓库。
第 2 步:敲 lazygit。进入主界面,左边是当前修改的文件列表。
第 3 步:用方向键选一个修改过的文件,按 enter 看 diff。
第 4 步:在 diff 视图里,按 space stage 整个 hunk;按 a 切行级选择;按 v 选多行。
第 5 步:按 c 写 commit message,回车提交。
第 6 步:按 u 撤销刚才的 commit(试试,不怕,LazyGit 随时 undo)。
第 7 步:按 P (大写)打开提交历史,选一个 commit 按 enter 看它的完整 diff。
第 8 步:按 s (在文件树)打开 stash 列表,试试 stash 当前改动、切分支、再 stash apply。
第 9 步:可视化 rebase——切到 main 分支,按 shift+r 进入 interactive rebase 模式,用方向键选 commit、按 s squash、按 d drop。
九、全套报错故障排查
报错 1: lazygit: command not found
原因分析:安装目录不在 PATH。
解决方案:确认 brew / apt 装好后重开终端;手动安装的话把二进制放到 /usr/local/bin/。
报错 2: 启动后报「fatal: not a git repository」。
原因分析:你在非 Git 目录里跑 lazygit。
解决方案:cd 到一个 git clone 的仓库,或先 git init。
报错 3: 中文文件名乱码。 原因分析:终端编码不是 UTF-8。 解决方案:把终端设为 UTF-8(macOS 默认就是;Windows Terminal 也默认 UTF-8)。
报错 4: 颜色不对、界面错位。 原因分析:终端不支持真彩色或终端类型不对。 解决方案:用 iTerm2 / Alacritty / kitty / Windows Terminal;在 config.yml 里换 theme。
报错 5: undo 后历史不对。
原因分析:LazyGit 的 undo 只撤销它自己记录的操作,外部 git 命令跑的操作它管不到。
解决方案:重要操作前先 git tag backup 打个快照。
十、升级、回滚与卸载
升级:
- brew:brew upgrade lazygit
- apt:sudo apt update && sudo apt install --only-upgrade lazygit
- go install:go install github.com/jesseduffield/lazygit@latest
备份建议:配置文件 ~/.config/lazygit/config.yml 单独备份。
回滚:从 Releases 下载旧版本二进制替换。
卸载:
- brew:brew uninstall lazygit
- apt:sudo apt remove lazygit
- 手动安装:sudo rm /usr/local/bin/lazygit
十一、商用许可与合规风险提示
LazyGit 采用 MIT(LICENSE 原文:Copyright (c) 2018 Jesse Duffield),可自由商用、二次开发、嵌入其他工具。它是 git 的前端,不修改 git 本身,所有 git 操作的合规性由你自己负责(commit message、提交作者、签名等)。
参考链接
- GitHub 仓库:https://github.com/jesseduffield/lazygit
- Releases:https://github.com/jesseduffield/lazygit/releases
- 文档:https://github.com/jesseduffield/lazygit/tree/master/docs
- 配置示例:https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md