如何使用 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面板与基础快捷键暂存 · 提交 · rebase 入门

lazygit 适合谁

01

讨厌记 git 子命令的人

用方向键和单键操作代替反复输入 git add、git restore、git commit。

02

需要快速看 diff 的开发者

文件列表里回车打开 diff,空格暂存整文件或 hunk(视面板与版本而定)。

03

整理本地提交历史

在 Commits 面板用 i 进入 interactive rebase,在 UI 里改 pick/squash 顺序,比手写 git rebase -i 少踩坑。

安装 lazygit

  1. 1

    macOS:Homebrew

    运行 brew install lazygit,确认 lazygit --version。Apple Silicon 与 Intel 使用同一 formula。

  2. 2

    Windows

    可用 winget install JesseDuffield.lazygit 或 scoop install lazygit(以各自仓库当前包名为准)。

  3. 3

    Linux

    Arch:sudo pacman -S lazygit。Debian/Ubuntu 等可先查发行版仓库;若无包,按 GitHub Releases 下载二进制或使用 go install github.com/jesseduffield/lazygit@latest(需 Go 工具链)。

  4. 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丢弃改动(需确认)清理误改
PPush推送到 remote
pPull拉取更新

暂存并提交一次改动

  1. 1

    打开仓库

    cd your-repo && lazygit。在 Files 面板看到未跟踪与已修改文件。

  2. 2

    看 diff

    选中文件按 Enter 进入 diff;确认要提交的行。

  3. 3

    Stage

    在文件列表对目标文件按 Space 暂存;需要局部暂存时,在 diff 视图里用 lazygit 提供的 stage hunk 操作(帮助里搜 stage)。

  4. 4

    Commit

    按 c,在底部输入 commit message,确认提交。Status 面板应显示 working tree clean(除未暂存外)。

  5. 5

    (可选)Push

    需要共享时按 P push;首次 push 新分支时 lazygit 会提示设置 upstream(按屏幕选项操作)。

# 典型工作流(终端)
cd ~/projects/my-app
lazygit
# Files → Space 暂存 → c 写 message → P push

Interactive rebase 入门

Interactive rebase 用来整理尚未 push 或允许改写的本地历史:合并 commit、改顺序、改 message。在已 push 且他人基于其工作的分支上 rebase 可能制造冲突,需团队规范允许。

  1. 1

    进入 Commits 面板

    用数字键或 Tab 把焦点移到 Commits,看到当前分支的提交列表。

  2. 2

    启动 interactive rebase

    选中要作为起点的提交(或按官方文档在 Branches 上对目标分支按 i),按 i 开始 interactive rebase。界面会列出 pick/squash 等待办项。

  3. 3

    调整动作与顺序

    在 rebase 待办列表里移动光标,用帮助中列出的键切换 pick、squash、fixup、drop 等(常见为 Space 或专用字母键,以 ? 为准)。

  4. 4

    确认并处理冲突

    确认后 lazygit 会执行 rebase。若冲突,按提示进入文件面板解决,完成后继续 rebase(菜单或快捷键见帮助)。

  5. 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 或协调后再改历史。

开始一场会议