Lazygit 使用指南
Lazygit 是一个终端下的 Git 客户端,通过 TUI(Terminal User Interface)把 Git 的常用操作可视化,用快捷键驱动替代手敲命令。暂存、提交、分支管理、交互式 rebase、冲突解决……基本上日常用到的 Git 操作都能在里面完成,而且比命令行直观得多。

安装
| 平台 | 命令 |
|---|---|
| macOS | brew install lazygit |
| Arch Linux | sudo pacman -S lazygit |
| Ubuntu/Debian | sudo apt install lazygit |
| Windows (Scoop) | scoop install lazygit |
| Windows (Winget) | winget install JesseDuffield.lazygit |
安装完成后,在 Git 仓库目录下执行 lazygit 即可启动。
界面概览
启动后的界面分为左右两大区域,左侧是 5 个面板,右侧是对应的详情视图(diff、日志等)。
左侧面板从上到下依次是:
| 编号 | 面板 | 说明 |
|---|---|---|
| 1 | Status | 当前仓库状态、所在分支 |
| 2 | Files | 工作区文件变更 |
| 3 | Branches | 本地分支、远程分支、Tags |
| 4 | Commits | 当前分支的提交历史 |
| 5 | Stash | Stash列表 |
面板导航:
- 数字键
1-5:快速跳转到对应面板 ←/→:在相邻面板间切换↑/↓或j/k:在列表中上下移动[/]:切换面板内的子标签页(如 Branches 面板下的 Local、Remotes、Tags)
基础操作
文件暂存与提交
在 Files 面板(按 2)中操作:
| 快捷键 | 功能 |
|---|---|
space |
暂存 / 取消暂存选中文件 |
a |
暂存 / 取消暂存所有文件 |
enter |
进入文件,按行或按块暂存 |
c |
提交已暂存的更改 |
A |
修改最后一次提交(amend) |
C |
使用编辑器编写提交信息并提交 |
按 enter 进入单文件暂存视图后,可以用 space 逐行暂存,用 v 切换范围选择模式来暂存多行。按 tab 可在暂存区和工作区之间切换查看。
推送与拉取
| 快捷键 | 功能 |
|---|---|
P(大写) |
Push 推送 |
p(小写) |
Pull 拉取 |
首次推送新分支时,lazygit 会提示设置上游分支。
其他文件操作
| 快捷键 | 功能 |
|---|---|
d |
查看丢弃更改选项 |
e |
用外部编辑器打开文件 |
s |
Stash所有更改 |
S |
查看Stash选项(可选择仅Stash暂存/未暂存的更改) |
` |
切换文件树 / 平铺视图 |
分支管理
在 Branches 面板(按 3)中操作:
| 快捷键 | 功能 |
|---|---|
space |
切换到选中分支 |
n |
基于当前分支创建新分支 |
d |
删除分支 |
M |
将选中分支合并到当前分支 |
r |
将当前分支rebase到选中分支 |
R |
重命名分支 |
f |
快进合并(fast-forward) |
u |
查看上游分支选项 |
- |
切换到上一个分支 |
Branches 面板通过 [ / ] 可切换到 Remotes 和 Tags 子标签页,管理远程分支和标签。
交互式 Rebase
在 Commits 面板(按 4)中,选中某个提交后可以进行交互式rebase操作:
| 快捷键 | 功能 | 说明 |
|---|---|---|
e |
Edit | 标记为编辑,暂停rebase让你修改 |
s |
Squash | 压缩到前一个提交,合并提交信息 |
f |
Fixup | 压缩到前一个提交,丢弃当前提交信息 |
d |
Drop | 删除提交 |
r |
Reword | 修改提交信息 |
p |
Pick | 保留提交(在rebase过程中标记) |
ctrl+j |
Move down | 将提交向下移动(即更早执行) |
ctrl+k |
Move up | 将提交向上移动(即更晚执行) |
i |
Start interactive rebase | 进入交互式rebase模式 |
上表中 e/s/f/d 等快捷键会立即对选中的单个提交执行操作,lazygit 自动完成 rebase,适合快速处理单个提交。
而 i 则是进入交互式 rebase 模式:先在多个提交上分别标记不同操作(pick、squash、fixup、drop 等),全部标记完成后再统一执行。适合需要一次性调整多个提交的场景。
Cherry-pick
在 Commits 面板中:
- 移动到想要复制的提交,按
C(大写)标记 - 切换到目标分支
- 按
V(大写)执行粘贴(cherry-pick)
按 ctrl+r 可以重置已标记的选择。支持一次标记多个提交再统一粘贴。
Stash 管理
创建Stash(在 Files 面板):
| 快捷键 | 功能 |
|---|---|
s |
Stash所有更改 |
S |
查看Stash选项(可选择范围) |
管理Stash(在 Stash 面板,按 5):
| 快捷键 | 功能 |
|---|---|
space |
应用Stash(保留Stash记录) |
g |
弹出Stash(应用并删除) |
d |
删除Stash |
n |
从Stash创建新分支 |
r |
重命名Stash |
Worktree(工作树)
概念
Git worktree 允许你在同一个仓库下同时签出多个分支到不同目录。每个 worktree 拥有独立的工作区和暂存区,但共享同一份 Git 历史。
典型场景:
- 并行开发:在开发新功能的同时,需要切到另一个分支修 bug,又不想 stash 或提交半成品代码
- 代码对比:同时打开两个分支的代码进行参照
- 长时间构建:一个 worktree 在跑构建,另一个继续开发
相比反复 git stash / git checkout,worktree 不需要中断当前工作,每个分支都保持独立的工作区状态。
在 Lazygit 中使用 Worktree
Worktrees 是 Files 面板(按 2)的一个子标签页,按 ] 切换即可找到。即使没有额外创建 worktree,该标签页也始终存在,会显示当前主工作区。
Worktrees 面板快捷键:
| 快捷键 | 功能 |
|---|---|
n |
创建新 worktree |
space |
切换到选中的 worktree |
o |
在编辑器中打开 worktree |
d |
删除选中的 worktree |
从其他面板创建 Worktree:
在 Branches、Commits、Tags、Reflog 等面板中,按 w 可以打开 worktree 选项菜单,快速基于选中的分支/提交创建 worktree。菜单提供两种创建方式:
| 选项 | 对应命令 | 说明 |
|---|---|---|
| Create worktree from <ref> | git worktree add |
关联分支:在新目录签出指定分支,可选创建新分支。新 worktree 有明确的分支归属,提交直接推进该分支 |
| Create worktree from <ref> (detached) | git worktree add --detach |
分离 HEAD:在新目录签出指定提交,但不关联任何分支。适合临时查看代码、测试或实验,不会影响现有分支 |
简单来说:需要在新 worktree 上持续开发就用普通模式,只是临时看看代码或跑个测试就用 detached 模式。
操作流程示例
创建并切换到新 worktree:
- 在 Branches 面板(按
3)选中目标分支 - 按
w打开 worktree 选项 - 选择 “Create worktree from …”,指定目录路径
- lazygit 会自动切换到新创建的 worktree
在 worktree 之间切换:
- 进入 Worktrees 面板
- 用
↑/↓选择目标 worktree - 按
space切换过去,lazygit 会重新加载对应目录的工作区
清理不用的 worktree:
在 Worktrees 面板中选中后按 d 即可删除,lazygit 会同时清理工作目录和 .git 中的 worktree 元数据。
冲突解决
当合并或rebase产生冲突时,lazygit 会在 Files 面板中标记冲突文件。按 enter 进入文件后,可以可视化地选择保留哪一方的更改:
| 快捷键 | 功能 |
|---|---|
space |
选择当前冲突块 |
b |
选择所有冲突块 |
← / → |
在冲突块之间切换 |
z |
撤销上一步冲突解决 |
M |
查看合并选项 |
快捷键速查
全局
| 快捷键 | 功能 |
|---|---|
P |
Push |
p |
Pull |
z |
撤销上一步操作 |
Z |
重做 |
R |
刷新 |
? |
查看当前面板的所有快捷键 |
x |
打开操作菜单 |
+ / - |
切换屏幕模式(正常/半屏/全屏) |
: |
执行 Shell 命令 |
ctrl+r |
切换到最近访问的仓库 |
q |
退出 |
Files 面板
| 快捷键 | 功能 |
|---|---|
space |
暂存 / 取消暂存 |
a |
全部暂存 / 取消 |
enter |
按行暂存 |
c |
提交 |
A |
Amend |
d |
丢弃更改 |
e |
编辑文件 |
s / S |
Stash / Stash选项 |
Branches 面板
| 快捷键 | 功能 |
|---|---|
space |
切换分支 |
n |
新建分支 |
M |
合并 |
r |
rebase |
d |
删除 |
R |
重命名 |
f |
快进 |
Commits 面板
| 快捷键 | 功能 |
|---|---|
e |
编辑提交 |
s |
Squash |
f |
Fixup |
d |
Drop |
r |
修改提交信息 |
C |
Cherry-pick 复制 |
V |
Cherry-pick 粘贴 |
ctrl+j/k |
上下移动提交 |
i |
进入交互式 rebase 模式 |
Worktrees 面板
| 快捷键 | 功能 |
|---|---|
n |
新建 worktree |
space |
切换到 worktree |
o |
在编辑器中打开 |
d |
删除 worktree |
w |
Worktree 选项(Branches/Commits 等面板通用) |
配置
lazygit 的配置文件路径因平台而异,执行 lazygit -cd 可以快速查看当前平台的配置目录:
| 平台 | 路径 |
|---|---|
| Linux | ~/.config/lazygit/config.yml |
| macOS | ~/Library/Application Support/lazygit/config.yml |
| Windows | %LOCALAPPDATA%\lazygit\config.yml |
此外,在仓库根目录创建 .lazygit.yml 可以设置仓库级的配置。
常用配置示例:
1 | gui: |
完整配置项参考:Config docs
- Title: Lazygit 使用指南
- Author: Wavky
- Created at : 2026-02-08 17:15:01
- Updated at : 2026-02-12 16:58:14
- Link: https://wavky.top//lazygit-user-guide/
- License: All Rights Reserved © Wavky