如何使用 lazygit:安装、基础快捷键、暂存提交与 interactive rebase 入门
在终端 TUI 里完成 Git 暂存、提交,并第一次用 lazygit 做 interactive rebase。
改几个文件就要在 git status、git add -p 和编辑器之间来回切。lazygit 是终端里的 Git 图形界面:在一个 TUI 里看状态、暂存、提交、分支与交互式 rebase;项目与文档见 github.com/jesseduffield/lazygit。
搜索 lazygit 安装 快捷键 暂存 提交 交互式 rebase 的人,通常要完成:装好、记住面板与常用键、把改动 stage 并 commit,以及第一次安全地打开 interactive rebase。以下按键以 lazygit 官方 Keybindings 为准,按 ? 可在程序内核对。
lazygit 适合谁
讨厌记 git 子命令的人
用方向键和单键操作代替反复输入 git add、git restore、git commit。
需要快速看 diff 的开发者
文件列表里回车打开 diff,空格暂存整文件或 hunk(视面板与版本而定)。
整理本地提交历史
在 Commits 面板用 i 进入 interactive rebase,在 UI 里改 pick/squash 顺序,比手写 git rebase -i 少踩坑。
安装 lazygit
- 1
macOS:Homebrew
运行
brew install lazygit,确认lazygit --version。Apple Silicon 与 Intel 使用同一 formula。 - 2
Windows
可用
winget install JesseDuffield.lazygit或scoop install lazygit(以各自仓库当前包名为准)。 - 3
Linux
Arch:
sudo pacman -S lazygit。Debian/Ubuntu 等可先查发行版仓库;若无包,按 GitHub Releases 下载二进制或使用go install github.com/jesseduffield/lazygit@latest(需 Go 工具链)。 - 4
第一次启动
在 Git 仓库根目录执行
lazygit。非仓库目录会提示不是 git 项目;可先git init或cd到已有项目。
面板与基础快捷键
lazygit 默认多面板布局(Status、Files、Branches、Commits 等)。数字键 1–5 常用来切换焦点面板;具体映射以你安装的版本按 ? 显示为准。
| 按键 | 常见作用 | 场景 |
|---|---|---|
? | 打开快捷键帮助 | 忘记键时先看这里 |
q / Esc | 退出或返回上一层 | 离开子视图 |
j / k 或方向键 | 上下移动 | 列表导航 |
Enter | 打开 diff / 详情 | 查看改动 |
Space | 暂存 / 取消暂存 | Stage 文件或 hunk |
c | 提交(commit) | 已暂存改动写 message |
d | 丢弃改动(需确认) | 清理误改 |
P | Push | 推送到 remote |
p | Pull | 拉取更新 |
暂存并提交一次改动
- 1
打开仓库
cd your-repo && lazygit。在 Files 面板看到未跟踪与已修改文件。 - 2
看 diff
选中文件按
Enter进入 diff;确认要提交的行。 - 3
Stage
在文件列表对目标文件按
Space暂存;需要局部暂存时,在 diff 视图里用 lazygit 提供的 stage hunk 操作(帮助里搜 stage)。 - 4
Commit
按
c,在底部输入 commit message,确认提交。Status 面板应显示 working tree clean(除未暂存外)。 - 5
(可选)Push
需要共享时按
Ppush;首次 push 新分支时 lazygit 会提示设置 upstream(按屏幕选项操作)。
# 典型工作流(终端)
cd ~/projects/my-app
lazygit
# Files → Space 暂存 → c 写 message → P pushInteractive rebase 入门
Interactive rebase 用来整理尚未 push 或允许改写的本地历史:合并 commit、改顺序、改 message。在已 push 且他人基于其工作的分支上 rebase 可能制造冲突,需团队规范允许。
- 1
进入 Commits 面板
用数字键或 Tab 把焦点移到 Commits,看到当前分支的提交列表。
- 2
启动 interactive rebase
选中要作为起点的提交(或按官方文档在 Branches 上对目标分支按
i),按i开始 interactive rebase。界面会列出 pick/squash 等待办项。 - 3
调整动作与顺序
在 rebase 待办列表里移动光标,用帮助中列出的键切换
pick、squash、fixup、drop等(常见为Space或专用字母键,以?为准)。 - 4
确认并处理冲突
确认后 lazygit 会执行 rebase。若冲突,按提示进入文件面板解决,完成后继续 rebase(菜单或快捷键见帮助)。
- 5
Push 前检查
历史被改写后可能需要
force-with-lease;lazygit 在 push 冲突时会给出选项。不要对共享主分支盲目强推。
第一次练习请在本地副本或功能分支上做 rebase,并
git branch backup-before-rebase留备份,再按i试 squash。
和队友对齐发布步骤时,终端里用 lazygit 很快;若要共享白板画流程,可从 wbroom 首页 开浏览器房间,见 创建与加入房间;终端多任务可参考 tmux 指南。
还想核对的问题
lazygit 会改 git config 吗?
lazygit 调用标准 git 命令完成操作。可选配置写在 ~/.config/lazygit/config.yml(路径以文档为准),不会偷偷改 remote 除非你在 UI 里确认相关操作。
和 tig、gitui 比怎么选?
三者都是终端 Git UI。lazygit 侧重键盘流、面板齐全与 interactive rebase 集成;选你顺手的一个即可,命令仍是标准 Git。
Space 暂存的是整个文件还是 hunk?
在文件列表多为整文件;在 diff / patch 面板可对 hunk 操作。以当前版本 ? 帮助中 Stage 相关说明为准。
rebase 后 push 被拒绝?
说明 remote 已有旧历史。若分支仅你使用,可用 force-with-lease(lazygit push 流程中的选项);若多人协作,改用 merge 或协调后再改历史。