lazygit

终端里的 Git TUI,用键盘操作 commit、branch、diff、stash,配合 tmux popup 使用最优雅。

#type / resource #status / evergreen #tech / dev #resource / lazygit #resource / git #media / tool #interface / cli

[!info] related notes

lazygit

是什么

lazygit 是一个终端 Git TUI(Text User Interface),用键盘操作 Git 的常用功能:stage、commit、branch、merge、rebase、stash、diff。比直接敲 Git 命令更直观,比 GUI 工具更轻量。

安装

# macOS
brew install lazygit

# Linux (Go)
go install github.com/jesseduffield/lazygit@latest

# Arch Linux
pacman -S lazygit

# Windows
scoop install lazygit

验证:

lazygit --version

基本使用

在 Git 仓库目录下直接运行:

lazygit

核心面板

┌──────────────┬──────────────┐
│   Files      │  Branches    │
│  (暂存区)     │  (分支列表)   │
├──────────────┼──────────────┤
│   Commits    │  Stash       │
│  (提交历史)   │  (暂存栈)     │
├──────────────┴──────────────┤
│         Main (Diff)         │
│       (差异预览区域)          │
└─────────────────────────────┘

常用操作

按键操作
空格stage / unstage 文件
ccommit
Ppush
ppull
o打开文件(在编辑器中)
i编辑 .gitignore
1-5切换面板
] / [切换到下一个/上一个面板
Enter展开/折叠项目
astage all / unstage all
d弹出操作菜单(discard、reset 等)
e编辑文件
?帮助 / 快捷键列表
q退出

分支操作

按键操作
b切换分支面板
n新建分支
空格切换到选中分支
Mmerge 到当前分支
rrebase 到选中分支
d删除分支

Stash 操作

按键操作
sstash 当前改动
gpop stash
ddrop stash

配合 tmux 使用

最优雅的方式是把 lazygit 放在 tmux popup(浮窗)里,而不是长期占一个 window。

tmux 配置

~/.tmux.conf 中添加:

# Prefix + g 打开 lazygit 浮窗
bind-key g display-popup -E -w 90% -h 90% 'lazygit'

Ctrl+a 再按 g,弹出 lazygit,操作完按 q 退出,回到原来的代码窗口。

为什么用 popup 而不是 window

方式适合场景
tmux popupgit status、commit、push、简单 merge。操作完就走。
tmux window复杂 rebase、冲突解决、需要边看 diff 边改代码。
tmux pane边写代码边跑 git diff --watchtig

什么时候该用单独的 git window

遇到以下情况时,切到专门的 tmux git window:

  • git rebase -i 有冲突需要手动解决
  • 需要反复在编辑器和 diff 之间切换
  • 需要跑 git log --graph 分析分支历史

配置文件

lazygit 的配置文件在 ~/.config/lazygit/config.yml

# ~/.config/lazygit/config.yml
gui:
  showIcons: true
  nerdFontsVersion: "3"
git:
  autoFetch: true
  paging:
    colorArg: always
    pager: delta --dark --paging=never

使用 delta 作为 diff pager 可以获得更好的差异显示效果。

边界

  • lazygit 适合日常 Git 操作,复杂的历史重写(如 filter-branch、bisect)还是用命令行更灵活。
  • 在极小的终端窗口里(宽度 < 80 字符),lazygit 的布局会压缩,体验下降。
  • 如果团队用 Git CLI 已经很熟练,lazygit 的价值在于减少记忆负担和操作步骤,不是必需品。

参考

创建于 2026/7/6 更新于 2026/7/15