$ terminals _

lazygit

推荐

终端中的 Git 图形化界面,让 Git 操作变得简单直观

GitHub brew install lazygit

简介

lazygit 是一个简单的终端 UI,用于 Git 命令操作。它提供了直观的界面来管理暂存、提交、分支、冲突解决等操作,大幅降低 Git 的使用门槛。

安装

# macOS
brew install lazygit

# Ubuntu/Debian
sudo add-apt-repository ppa:lazygit-team/release
sudo apt update && sudo apt install lazygit

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

核心功能

  • 文件暂存: 按空格键逐个暂存/取消暂存文件,按 a 暂存全部
  • 交互式变基: 可视化 rebase,支持 squash、fixup、reword
  • 分支管理: 快速切换、合并、变基分支
  • 冲突解决: 直观的三方合并界面
  • Cherry-pick: 跨分支选择提交
  • Diff 查看: 实时查看暂存和未暂存的差异
  • 自定义命令: 支持绑定自定义 Git 命令

快捷键速查

按键功能
空格暂存/取消暂存
c提交
p推送
P拉取
b切换分支面板
sStash
?帮助

典型场景

场景一:交互式 rebase 整理提交历史

提 PR 前把零碎的 WIP 提交合并成干净的提交记录:

  1. 在 lazygit 中切到 commits 面板(按 4
  2. 找到想合并的多个提交,按 e 进入交互式 rebase
  3. 对 WIP 提交按 s(squash)合并到上一条
  4. 对提交信息按 r(reword)改写描述
  5. 确认后 w 执行 rebase

全程可视化操作,无需记忆 git rebase -i HEAD~N 语法。


场景二:精细化暂存——只提交部分改动

一个文件里修了两个不相关的 bug,想分两次提交:

  1. 在 Files 面板找到该文件,按 Enter 展开
  2. 空格 逐行选择要暂存的 hunk
  3. c 提交第一部分
  4. 回到文件继续暂存剩余改动,再次 c 提交

等价于 git add -p,但完全可视化。


场景三:解决合并冲突

多人协作时遇到冲突,lazygit 提供三方对比视图:

  1. 合并/rebase 后在 Files 面板看到冲突文件(橙色标记)
  2. Enter 打开冲突编辑器
  3. b(both)、o(ours)、t(theirs)选择保留哪侧
  4. 冲突解决后 空格 暂存,c 继续 rebase/merge