lazygit:把 Git 操作从「背命令」变成「按键盘」
一款跑在终端里的 Git 图形界面。不用离开命令行,就能完成暂存、提交、变基、挑樱桃、解冲突——每个动作都是一两个按键。
如果你符合下面任意一条,这篇值得一读:
git add -p的交互提示每次都要现查;git rebase -i一打开编辑器就手抖,怕改坏历史;git stash list查完编号,还要小心翼翼地敲git stash pop stash@{2};觉得 SourceTree / Fork 这类 GUI 太重,但纯命令行又太琐碎。
lazygit 就是夹在中间的那个位置:它是 Git 的键盘优先前端,不是替代品。底层每个动作都对应一条真实的 git 命令,你甚至能让它把执行过的命令打印出来看。
一、安装(三分钟搞定)
# macOS / Linux(Homebrew)
brew install lazygit
# Windows(winget 或 Scoop)
winget install -e --id=JesseDuffield.lazygit
scoop bucket add extras && scoop install lazygit
# Arch
sudo pacman -S lazygit
# Debian 13+ / Ubuntu 25.10+
sudo apt install lazygit
# 任意平台(有 Go 环境)
go install github.com/jesseduffield/lazygit@latest
老版本 Ubuntu(22.04 / 24.04)官方源里的 lazygit 版本较旧,会缺不少新按键,建议直接从 GitHub Releases 下二进制,丢进 ~/.local/bin。
验证:
lazygit --version
装完第一件事,设个别名:
# zsh
echo "alias lg='lazygit'" >> ~/.zshrc && source ~/.zshrc
# bash
echo "alias lg='lazygit'" >> ~/.bashrc && source ~/.bashrc
Windows PowerShell 用户:
Add-Content $PROFILE 'function lg { lazygit $args }'
在任意 Git 仓库里敲 lg 即可启动。
二、界面:五个面板 + 一个主视图
启动后左边是五个侧边面板,右边是主视图(diff、日志等详情)。
导航键:
最重要的一点:同一个按键在不同面板里含义不同。 比如 d 在 Files 面板是「丢弃改动」,在 Commits 面板是「删除提交」,在 Stash 面板是「删除 stash」。拿不准就按 ?,它只列当前面板可用的键——这是 lazygit 最该记住的一个键。
三、先背这 8 个键,日常够用了
在 Files 面板:
就这八个,覆盖 80% 的日常。剩下的边用边查。
四、五个真实场景
场景 1:一个文件里只想提交其中几行
改了 200 行,其中 5 行是修 bug,剩下的都是调试日志——只提交那 5 行。
Files 面板选中该文件,按
Enter进入行级暂存视图;Space暂存光标所在行(或所在 hunk);a在「按行选择」和「按整块选择」之间切换;v开启区域选择,一次性框选多行;Tab在「已暂存 / 未暂存」两个视图间切换;直接按
c提交,或Esc回到 Files 面板。
想手动编辑某个 hunk(相当于 git add -p 里的 e),按 E。
场景 2:把 5 个 WIP 提交合并成 1 个
走到 Commits 面板:
不用再在编辑器里手改 pick / squash 那堆行。
配合 review 工作流更爽的一套:在 Commits 面板选中你要补充的那个旧提交,按 F 直接创建一个 fixup! 提交;收尾时按 S 一次性把所有 fixup 应用掉(autosquash)。全程不用记旧提交的 hash。
场景 3:提交错了分支
在 main 上写了三个提交才想起来该开分支。切到 Branches 面板:
N 就是专门救这个场的:原生命令需要 git branch + git reset --hard 组合拳,这里一键。
场景 4:手滑删了提交
按 z。
这是 lazygit 最值钱的一个键——基于 reflog 实现,误删提交、变基翻车、d 错了提交,都能救回来。撤销过头了就按 Z 重做。
注意:
z覆盖的是 Git 操作(提交、变基等),工作区文件改动不在其中。丢文件改动请用 Files 面板的d之外的手段。
场景 5:合并冲突
冲突发生时,在 Files 面板选中冲突文件按 Enter 进入冲突解决视图:
五、三个值得马上改的配置
配置文件位置不确定就跑 lazygit --print-config-dir,或者在 lazygit 里按 Alt+Shift+C 直接打开。常见路径:Linux ~/.config/lazygit/config.yml,macOS ~/Library/Application Support/lazygit/config.yml,Windows %LOCALAPPDATA%\lazygit\config.yml。
(1)用 delta 让 diff 有语法高亮
先装 delta:
brew install git-delta # macOS
cargo install git-delta # 有 Rust 环境
git:
paging:
colorArg: always
pager: delta --dark --paging=never
(2)指定外部编辑器(决定 e 键用哪个编辑器打开文件)
os:
editPreset: 'vscode' # 也支持 vim / nvim / sublime 等
(3)终端用 Nerd Font 的话,打开图标
gui:
nerdFontsVersion: "3"
六、两个容易被忽略的彩蛋
@ —— 命令日志。 它会列出 lazygit 刚刚实际执行的 git 命令。想学 Git 又不知道某个操作对应什么命令,按一下就知道了。这也是为什么我说 lazygit 是「Git 的教材」。
: —— 命令模式。 直接在 lazygit 里敲任意 shell 命令执行,不用退出。
七、上手路径建议
别想着一次记全,按这个顺序来:
第一天:只用
Space→c→P,外加?随查;第二天:加
a、A、d,把提交改顺手;第一周:练熟 Commits 面板的
s/f/r,以及z;第二周:玩
F+S的 fixup 工作流,和 Branches 面板的N。
一天用下来,你会发现自己按 ? 的次数在下降,而敲 git 的次数下降得更快。
参考
仓库:https://github.com/jesseduffield/lazygit
下载页:https://lazygit.dev/download
完整按键表:启动后按
?,或官方文档docs/keybindings/Keybindings_zh.md
本文基于 lazygit v0.5x–0.6x 系列按键编写,不同版本个别按键可能微调,以按
?看到的为准。