简介
lazygit 是一个简单的终端 UI,用于 Git 命令操作。它提供了直观的界面来管理暂存、提交、分支、冲突解决等操作,大幅降低 Git 的使用门槛。
安装
# macOS
brew install lazygit
# Ubuntu/Debian
sudo add-apt-repository ppa:lazygit-team/release
sudo apt update && sudo apt install lazygit
# Go
go install github.com/jesseduffield/lazygit@latest
核心功能
- 文件暂存: 按空格键逐个暂存/取消暂存文件,按
a暂存全部 - 交互式变基: 可视化 rebase,支持 squash、fixup、reword
- 分支管理: 快速切换、合并、变基分支
- 冲突解决: 直观的三方合并界面
- Cherry-pick: 跨分支选择提交
- Diff 查看: 实时查看暂存和未暂存的差异
- 自定义命令: 支持绑定自定义 Git 命令
快捷键速查
| 按键 | 功能 |
|---|---|
空格 | 暂存/取消暂存 |
c | 提交 |
p | 推送 |
P | 拉取 |
b | 切换分支面板 |
s | Stash |
? | 帮助 |
典型场景
场景一:交互式 rebase 整理提交历史
提 PR 前把零碎的 WIP 提交合并成干净的提交记录:
- 在 lazygit 中切到 commits 面板(按
4) - 找到想合并的多个提交,按
e进入交互式 rebase - 对 WIP 提交按
s(squash)合并到上一条 - 对提交信息按
r(reword)改写描述 - 确认后
w执行 rebase
全程可视化操作,无需记忆 git rebase -i HEAD~N 语法。
场景二:精细化暂存——只提交部分改动
一个文件里修了两个不相关的 bug,想分两次提交:
- 在 Files 面板找到该文件,按
Enter展开 - 用
空格逐行选择要暂存的 hunk - 按
c提交第一部分 - 回到文件继续暂存剩余改动,再次
c提交
等价于 git add -p,但完全可视化。
场景三:解决合并冲突
多人协作时遇到冲突,lazygit 提供三方对比视图:
- 合并/rebase 后在 Files 面板看到冲突文件(橙色标记)
- 按
Enter打开冲突编辑器 - 用
b(both)、o(ours)、t(theirs)选择保留哪侧 - 冲突解决后
空格暂存,c继续 rebase/merge