一句话概括:lazygit = 终端里的 Git 图形化神器,告别繁琐命令,一切操作触手可及
适合人群:每天和 Git 打交道的开发者,厌倦了手敲长命令的人


兄弟们,问你一个扎心的问题:

你每天要敲多少次 git 命令?

git status
git add .
git commit -m "xxx"
git push origin main
git checkout -b feature/xxx
git rebase -i HEAD~3
git stash
git stash pop

这还只是基础操作。一旦遇到交互式 rebasecherry-pickbisect 这些高级操作,你就得开始:

  • 查文档 📖
  • 复制粘贴命令
  • 祈祷不要搞砸

更离谱的是 git add -p(交互式暂存),你得在终端里一个一个 hunk 地选,选错了就只能重新来。

这种痛苦,我懂。

所以今天要给你安利一个神器 —— lazygit

GitHub 上 73.6k stars,全网开发者都在用的 Git 终端 UI,用过的都说:真香!


lazygit 是什么?

一句话解释

lazygit = 终端里的 Git 图形化界面

就像你用 VS Code、Sublime Merge、GitKraken 这些 GUI 工具操作 Git 一样,lazygit 让你在终端里也能享受图形化的操作体验。

但不一样的是:

对比项GUI 工具lazygit
启动速度几秒毫秒级
内存占用几百 MB几十 MB
操作方式鼠标点击键盘快捷键
分屏工作需要切换窗口直接在终端里
SSH 远程需要装客户端开箱即用

为什么说它是"颠覆性"的?

痛点一:交互式 rebase 是噩梦

传统方式:

git rebase -i HEAD~5
# 打开编辑器,手动编辑 TODO 文件
# pick, squash, drop, edit...
# 保存退出,祈祷没写错

lazygit 方式:

  • i 进入 rebase 模式
  • 上下移动选中 commit
  • s squash,按 d drop,按 e edit
  • m 继续,完成!

所见即所得,再也不用编辑那个反人类的 TODO 文件了。

痛点二:部分暂存太麻烦

传统方式:

git add -p
# 然后一个个 y/n 选择...
# 如果一个 hunk 里想只暂存部分代码?手动编辑 patch 文件!

lazygit 方式:

  • 进入文件,直接看到修改内容
  • space 暂存单行
  • v 选择多行
  • a 暂存整个 hunk

代码级别的精准控制,清清楚楚。

痛点三:操作失误难以撤销

传统方式:

# 重置到某个 commit
git reset --hard HEAD~3
# 然后后悔了...去查 reflog?

lazygit 方式:

  • z 撤销上一步操作
  • ctrl+z 重做

Git 操作也有后悔药了!


核心功能一览

lazygit 能做什么?看看这些杀手级功能:

1. 可视化 Commit Graph

*─┐─┐ Merge pull request #123
│ │ * Fix bug in login
│ *─┘ Add feature X
* │ Update README
│ * Refactor utils
*─┘ Initial commit

分支关系一目了然,再也不用 git log --graph --oneline --all 了。

2. 交互式 Rebase(绝杀功能)

  • Squash 合并多个 commit
  • Fixup 自动合并(不保留 message)
  • Drop 删除无用 commit
  • Edit 编辑某个 commit
  • Reorder 拖拽调整顺序

一切都是可视化的,所见即所得。

3. Cherry-pick 一键复制

  • 在源分支选中 commit,按 shift+c 复制
  • 切换到目标分支,按 shift+v 粘贴

比命令行简单 100 倍。

4. Stash 管理

  • 一键 stash
  • 命名 stash
  • 选择性 unstash
  • 查看所有 stash 内容

5. Worktree 支持

想同时开发多个分支?不用频繁 stash 了:

  • w 创建 worktree
  • 一个终端窗口一个分支
  • 互不干扰

6. Bisect 调试神器

找 Bug 祖宗神器:

  • b 标记 good/bad
  • lazygit 自动二分定位
  • 找到问题 commit

7. 自定义命令

lazygit 支持自定义快捷键,你可以把常用操作绑到任意按键上。


实战:5 分钟上手 lazygit

安装(超简单)

macOS / Linux (Homebrew):

brew install lazygit

Ubuntu / Debian:

sudo apt install lazygit
# 或者最新版
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": *"v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin/

Arch Linux:

sudo pacman -S lazygit

Windows (Scoop):

scoop bucket add extras
scoop install lazygit

Go 安装(全平台):

go install github.com/jesseduffield/lazygit@latest

启动

在任意 Git 仓库目录下:

lazygit

建议加个别名:

echo "alias lg='lazygit'" >> ~/.zshrc
source ~/.zshrc

以后直接敲 lg 就能启动!

常用快捷键速查

快捷键功能
?查看所有快捷键
h/j/k/l左/下/上/右导航
space暂存/选中
a全选当前 hunk
c提交
shift+c复制 commit(cherry-pick)
shift+v粘贴 commit
P推送
p拉取
rrebase
i开始交互式 rebase
z撤销
ctrl+z重做
wworktree 管理
bbisect
d删除/drop
e编辑
ssquash
ffixup
/搜索过滤
q退出

界面布局

示例图


真实使用场景(我每天都在用)

场景一:每天早上开始工作

lg
# 按 p 拉取最新代码
# 按 F5 刷新状态
# 开始干活

场景二:提交代码

lg
# 左侧选择 Files
# 右侧看到所有修改
# 按 space 暂存想提交的文件/行
# 按 c 提交,输入 message
# 按 P 推送

全程不碰鼠标,效率翻倍。

场景三:修 Bug 发现当前分支太乱

lg
# 按 w 创建新 worktree
# 新开一个终端窗口,进入新 worktree
# 专心修 Bug
# 修完后合并,删除 worktree

场景四:回顾代码历史

lg
# 进入 Commits 面板
# 按 + 放大窗口,看到 commit graph
# 上下浏览,按 enter 查看每个 commit 的详细改动

场景五:紧急修复线上问题

lg
# 切换到 main 分支
# 创建 hotfix 分支
# 修复、测试
# cherry-pick 到 release 分支
# 一气呵成

注意事项(必看!)

1. 首次使用建议

  • 先在测试仓库里熟悉操作
  • ? 查看快捷键,不用死记
  • lazygit 的操作都有确认提示,不用担心误操作

2. Undo 的限制

  • z 撤销基于 reflog,只能撤销 commit 和 branch 相关操作
  • 工作区未暂存的改动无法撤销
  • 重要操作前,建议先 commit

3. 配置文件位置

# macOS / Linux
~/.config/lazygit/config.yml

# Windows
%APPDATA%\lazygit\config.yml

4. 推荐配置

# ~/.config/lazygit/config.yml
gui:
  # 显示分支图
  showBranchCommitGraph: true
  # 主题
  theme:
    activeBorderColor:
      - green
      - bold
  # 时间格式
  timeFormat: "2006-01-02 15:04"

# Git 配置
git:
  # 自动 fetch
  autoFetch: true
  # 分页大小
  paging:
    pager: delta --dark --paging=never

5. 与 delta 配合(强烈推荐)

如果你用 delta 看代码差异,lazygit 能完美配合:

# lazygit config
git:
  paging:
    pager: delta --dark --paging=never

代码 diff 变得超级漂亮!


对比其他工具

工具类型优点缺点
lazygitTUI快速、键盘友好、SSH 可用无鼠标操作
GitKrakenGUI界面美观、功能强大付费、慢、占内存
Sublime MergeGUI快速、好看付费
VS Code GitGUI集成开发环境功能有限
tigTUI轻量功能较少
git 命令行CLI灵活强大难学、易忘

lazygit 是 TUI 和 GUI 的完美结合点:既有命令行的速度,又有图形界面的直观。


福利:我整理的 lazygit 资源

资源说明链接
官方仓库GitHub 源码github.com/jesseduffield/lazygit
官方文档完整配置说明github.com/jesseduffield/lazygit/tree/master/docs
快捷键速查Keybindingslazygit.readthedocs.io
视频教程15 分钟入门YouTube - 15 Lazygit Features in 15 Minutes
Rebase 教程进阶技巧YouTube - Rebase Magic Tutorial
delta 配合美化 diffgithub.com/dandavison/delta

总结

如果你:

  • 每天都在和 Git 打交道
  • 厌倦了敲各种 Git 命令
  • 想在终端里享受 GUI 般的体验
  • 追求极致的开发效率

lazygit 就是为你准备的。

73k 开发者的选择,不会错。

建议你今天就装上试试,5 分钟上手,一生受用。


相关推荐

如果你觉得 lazygit 有用,这几篇文章你应该也会喜欢:


觉得有用?点个赞 + 转发 + 关注!

评论区见,有任何问题欢迎留言,我看到都会回复!

#lazygit #Git #终端工具 #开发者效率 #命令行神器 #开源工具

Q.E.D.


寻门而入,破门而出