git status、git diff、git log --oneline --graph 来回切,手指已经记住了一套快捷脚本,但半屏 diff、挑 hunk、交互 rebase 还是要跳编辑器或临时改 TODO 文件。有人开始找键盘驱动的面板,想少记几条冷门子命令。jesseduffield/lazygit 的 README 首页第一句把自己写成 A simple terminal UI for git commands——简单说就是给已有 Git 加一层终端界面,不是另起一套版本控制。
它管的是界面,不是换仓库模型
日常提交、分支、暂存区仍然走本机那份 Git。lazygit 把状态、文件、提交图、stash 分栏摊开,用快捷键完成 stage、commit、checkout、interactive rebase 一类动作。官方 Features 里还列了按 hunk / 按行暂存、cherry-pick、bisect、amend 旧提交,以及基于 reflog 的 undo(文档写明:撤销主要针对提交和分支相关操作,工作区改动和 stash 不在这套撤销里)等。
仓库里若已经用 git worktree 开了第二份目录,那是多工作树本身的事,命令与清理按 git-scm 文档。lazygit 面板里也有 Worktrees 入口,但那只是同一套 Git 能力的界面入口,别把它理解成「装了 lazygit 就等于换了 VCS」,更不要和「另开工作树并行改两个功能」那篇操作说明缠在一起复述。
赞助相关只走官方 README 里的 GitHub Sponsors 一类正规渠道。别去找破解赞助版、盗版二进制或来路不明的改包——那既绕开维护者,也把本机 Git 凭据和仓库路径交到不可信程序手里。
安装渠道看 README
Installation 列了一长串发行版与包管理器:Homebrew(brew install lazygit,Linux 也可用)、Scoop / Chocolatey / winget、各发行版仓库,以及 GitHub Releases 上的二进制。Debian / Ubuntu 侧文档写明:较新的发行版可用 apt install lazygit。更早的版本则给出按最新 release 标签拉 tar 包再 install 到 /usr/local/bin 的步骤。第三方包跟不跟上游同步,README 自己也提醒要自行甄别维护者,别因为「包名对得上」就跳过校验。
装完后在某个已有 Git 仓库目录里直接跑:
lazygit
可选给自己加个别名(README 举例 alias lg='lazygit')。快捷键完整表在仓库 docs/keybindings。配置见 docs/Config.md。第一次进去别急着改全局行为:先在状态栏和文件面板里走完「看 diff → 暂存 → 提交」一轮,确认它只是在调你本机的 git。需要自定义命令时再读 Custom Command 文档,把团队里反复敲的检查脚本挂成快捷键,而不是一上来改默认按键到自己都认不出。
适合补哪一段日常
适合的是:已经会用 Git,但讨厌为了交互 rebase 手改 TODO、为了拆 hunk 去啃 patch 文件、为了对比两个提交反复拼 git diff A B。官方还演示了在放大视图里看提交图、标记基准提交后再 rebase,以及用过滤缩小分支列表——这些都是「同一仓库里加快眼手」的问题,不是换托管平台。
不适合的是:指望它替代钩子策略、权限模型或服务器端保护——那些仍在 Git 服务端和团队规范里。大仓库第一次打开若略慢,先缩小关注面(过滤分支、别一次展开整棵超长历史),再决定要不要改配置里的自定义命令或 diff 渲染。SSH 远程仓库、子模块脏状态一类边角,仍看 git 自己报错。面板只是把常见路径缩短,不会 magically 修好远端权限。
和 IDE 自带的 Git 视图相比,lazygit 的卖点是「人不离开终端、键位可练成肌肉记忆」。和纯命令行相比,它把多面板状态摊开,少在脑子里缓存 status 输出。两者都不是新协议。选哪边看你一天有多少时间待在 SSH 会话里。
你现在最常卡在「拆 hunk」还是「交互 rebase 那几步」?