Lazygit:终端里的 Git 可视化操作工具

git 用起来功能强,但日常操作中总有些不方便的地方:交互式变基要手写 TODO 文件,暂存部分代码得逐个 hunk 确认,切分支前还要纠结该不该 stash。lazygit 就是来解决这些痛点的。

正文顶部截图

Lazygit 是一个基于终端的 Git 图形界面工具,用 Go 编写,目前在 GitHub 上获得了 79,000+ Star。它把常用的 Git 操作封装成可视化界面,通过键盘快捷键完成,不需要记忆复杂命令。

打开 lazygit 后,界面分成四个面板:文件状态、分支列表、提交历史和 diff 视图。所有操作都在终端内完成,不需要鼠标,也不需要切换窗口。对于习惯用终端工作但又嫌 git 命令繁琐的人来说,这个工具比较对路。

核心功能

逐行暂存

选择文件后,按空格键暂存单行代码,按 v 键选择一段范围,按 a 键暂存整个 hunk。不再需要在命令行里逐个确认。

交互式变基

按 i 键启动交互式变基,用 s(squash)、f(fixup)、d(drop)、e(edit)、Ctrl+K / Ctrl+J(上下移动)操作提交记录。也可以直接在某个提交上按对应按键执行一次性操作,不用先显式启动 rebase。

Cherry-pick

在提交记录上按 Shift+C 复制,到目标位置按 Shift+V 粘贴,完成 cherry-pick。

Bisect

在提交列表视图中按 b 键标记当前提交为 good 或 bad,启动 git bisect 二分查找。

修改历史提交

在任意提交上按 Shift+A,会将当前暂存区的改动合并到该提交,后台自动执行交互式变基。

自定义命令

Lazygit 提供灵活的自定义命令系统。如果缺少某个功能,可以通过配置文件定义自己的快捷键和对应操作。

Worktree

按 w 键从当前分支创建 worktree 并切换过去,可以同时维护多个分支,不用反复 stash 或创建 WIP 提交。

撤销 / 重做

按 z 撤销上一步操作,按 Shift+Z 重做。基于 reflog 实现,可以安全回退。

README区域截图

安装

Lazygit 支持主流操作系统和包管理器:

# macOS / Linux (Homebrew)
brew install lazygit

# Windows (Scoop)
scoop bucket add extras
scoop install lazygit

# Windows (Winget)
winget install -e --id=JesseDuffield.lazygit

# Arch Linux
sudo pacman -S lazygit

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

Debian、Ubuntu、Fedora、NixOS、FreeBSD 等系统的安装方式可以参考项目文档,基本各大发行版都有对应的包。

使用

在 Git 仓库目录下执行 lazygit 即可启动。想用更短的命令可以加个别名:

alias lg='lazygit'

Lazygit 默认显示四个面板:文件状态、分支、提交历史和当前文件的 diff。面板切换和操作都通过快捷键完成,完整的快捷键列表可以在项目的 keybindings 文档中查看。

退出时如果想让 shell 自动切换到在 lazygit 中浏览的目录,可以在 shell 配置文件中添加一个函数,项目文档里有现成的模板。

其他特性

  • 支持查看 GitHub PR 状态,分支名称旁会显示 PR 状态图标,需要安装 gh CLI 工具
  • 支持 Gitflow 工作流,可以在分支视图中按 i 键查看 Gitflow 相关操作
  • 内置提交图谱视图,放大窗口后可查看分支走向,颜色区分不同提交者
  • 支持比较两个提交的差异,按 Shift+W 标记基准提交后选择目标提交即可查看 diff
  • 支持自定义 diff 分页器,可以配置使用 delta 或 difftool 等工具

Lazygit 的作者是 Jesse Duffield,项目代码质量不错,也有完善的贡献指南和 Discord 社区。如果每天都在和 git 打交道,lazygit 可以把不少重复性的命令行操作变成几次按键,值得试试。

Duffield,项目代码质量不错,也有完善的贡献指南和 Discord 社区。如果每天都在和 git 打交道,lazygit 可以把不少重复性的命令行操作变成几次按键,值得试试。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐