Lazygit 使用指南
Lazygit 是一个终端下的 TUI 工具,为 Git 操作提供交互式界面,大幅提升日常 Git 工作流的效率。
核心概念
Lazygit 将工作分为多个面板(Pane),每个面板专注一种操作对象:
| 面板 | 快捷键 | 作用 |
|---|---|---|
| 文件面板 | space |
暂存/取消暂存文件 |
| 提交面板 | d |
查看/修改最近提交 |
| 分支面板 | b |
切换/创建/删除分支 |
| 状态面板 | s |
查看 stash 列表 |
| 搜索 | / |
在任意面板中搜索过滤 |
日常操作示例
场景 1:暂存部分修改 (Partial Staging)
bash
# 假设一个文件有多处修改,只想暂存其中一部分
- 在文件面板中选中要拆分的文件
- 按
space展开该文件的分块视图 (hunk diff) - 用
1-2选中要暂存的具体行 - 按
space暂存选中的块 - 按
c写提交信息
场景 2:修改最后一次提交
- 按
d进入提交面板 - 选中最近的提交,按
r(reword) 重新编辑提交信息 - 或按
e(amend) 直接修改文件(追加暂存区内容到上一提交)
场景 3:交互式 Rebase
- 在提交面板中选中一个提交
- 按
s标记为 squash(合并到上一个) - 按
p标记为 pick(保留) - 按
r标记为 reword(修改提交信息) - 操作完成后按
m开始执行 rebase
场景 4:暂存工作进度 (Stash)
- 按
s切换到状态面板 - 按
s新建 stash - 输入 stash 描述信息
- 之后在状态面板选中 stash,按
a应用或ppop(应用并删除)
场景 5:快速分支操作
- 按
b进入分支面板 - 按
c创建新分支 - 按
D删除分支 - 按
enter切换到选中分支
场景 6:冲突解决
- 合并时产生冲突后,文件面板会高亮冲突文件
- 选中冲突文件,按
o打开外部合并工具(需在.gitconfig中配置) - 或在lazygit内按
1-2逐个选择 «< 和 »> 块的版本
快捷键详解
导航与选择
| 快捷键 | 功能说明 |
|---|---|
↑/↓ 或 j/k |
在列表中上下移动 |
←/→ 或 h/l |
在相邻面板间切换 |
tab |
切换到下一个面板 |
enter |
进入详情/确认选中项 |
esc |
返回上一级/取消操作 |
文件面板 (Files)
| 快捷键 | 功能说明 |
|---|---|
space |
暂存/取消暂存选中文件(进入分块模式后选中单行) |
a |
暂存所有文件 |
A |
取消暂存所有文件 |
v |
进入可视化选择模式,逐行选中要暂存的内容 |
diff |
查看选中文件的完整 diff |
提交面板 (Commits)
| 快捷键 | 功能说明 |
|---|---|
c |
创建新提交 |
d |
查看选中提交的详细信息 |
r |
重新编辑提交信息 (reword) |
e |
修改提交:将暂存区内容追加到上一提交 (amend) |
s |
压缩提交:将选中提交合并到上一个 (squash) |
f |
将提交压缩为 fixup(不保留提交信息) |
p |
标记为 pick(保留,用于 rebase 排序) |
m |
开始执行 rebase 操作 |
t |
打标签 (tag) |
cherry-pick |
复制选中提交到当前分支 |
分支面板 (Branches)
| 快捷键 | 功能说明 |
|---|---|
enter |
切换到选中分支 |
c |
从当前分支创建新分支 |
d |
删除选中分支 |
D |
强制删除(不检查是否已合并) |
f |
拉取远程分支到本地 |
M |
将当前分支合并到选中分支 |
R |
重命名分支 |
空格 |
检出(checkout)选中分支 |
状态面板 (Stash)
| 快捷键 | 功能说明 |
|---|---|
enter |
查看 stash 详情 |
a |
应用选中 stash(保留 stash 条目) |
p |
弹出 stash(应用并删除) |
d |
删除选中 stash |
n |
新建 stash(会提示输入描述) |
通用操作
| 快捷键 | 功能说明 |
|---|---|
? |
打开帮助面板,查看所有快捷键 |
q |
退出 lazysig |
x |
标记删除/丢弃(需再按一次确认) |
/ |
打开搜索框过滤当前列表 |
z |
打开 undo 树,撤销之前的操作 |
g |
跳转到列表顶部 |
G |
跳转到列表底部 |
Ctrl+R |
刷新当前面板内容 |
Ctrl+Z |
撤销最近的工作区修改 |
o |
用默认程序打开文件(如合并工具) |
提交信息编辑
| 快捷键 | 功能说明 |
|---|---|
Ctrl+E |
在外部编辑器中编辑提交信息 |
Tab |
切换编辑/预览模式 |
Ctrl+L |
清空输入框 |
合并与冲突
| 快捷键 | 功能说明 |
|---|---|
m |
开始 merge/rebase 操作 |
a |
接受 ours(本地)版本 |
b |
接受 theirs(远程)版本 |
1 |
接受第一个冲突块 |
2 |
接受第二个冲突块 |
B |
标记为已解决,继续下一步 |
u |
取消当前的 rebase/merge 操作 |
配置文件
Lazygit 支持通过 YAML 配置自定义主题和快捷键:
```yaml # ~/.config/lazygit/config.yml gui: theme: activeBorderColor: - cyan selectedLineBgColor: - blue authorColors: yourname: cyan
keybinding: universal: quit: “q” confirm: “enter” ```
实用技巧
- 批量操作:在文件面板中用
x标记多个文件,再按space批量暂存 - 搜索过滤:按
/在任意面板输入关键词过滤 - 撤销:按
z进入 undo 树,浏览所有操作历史 - 子模块:在提交面板按
u更新子模块
参考
- Lazygit 官方仓库:https://github.com/jesseduffield/lazygit#installation
Lazygit 适合习惯终端但希望提升 Git 操作效率的开发者。它没有颠覆 Git 的概念,而是让常用操作更容易触达。相比 IDE 的图形界面,它支持更精细的分块操作(hunk-level staging)。上手建议:从日常的 add + commit + push 开始,逐步探索 rebase 和 stash 功能。