命令行工具
jesseduffield/lazygit avatar
jesseduffield/lazygit

lazygit:一个简单的 git 命令终端界面

lazygit 是一个终端界面,用于暂存文件、检查差异、管理分支、变基和解决常见 Git 任务。

82,364 个 Star3,037 个 ForkGoMIT
GitHub

秒懂

它是什么?
用 Go 编写的终端界面,支持交互式变基、逐行暂存和自定义补丁。
适合谁用?
lazygit 适合已经熟悉 Git、希望在终端内完成逐行暂存、交互式变基、工作树和提交比较的人;不适合把 TUI 当成 Git 风险隔离层的人。先在临时仓库中验证 z、Shift+z、nuke 和变基快捷键的实际行为,再把配置与别名带入日常仓库。
能商用吗?
可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 1 天前。
用什么语言写的?
主要是 Go(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

一个简单的 git 命令终端界面

该仓库将 lazygit 描述为一个用 Go 编写的简单 git 命令终端界面。README 的开场白直言不讳:git 很强大,但日常操作如交互式变基和暂存文件的一部分可能非常痛苦。lazygit 被定位为那些希望用 TUI 而不是命令行咒语来完成这些操作的人的选择。README 没有声称任何性能数字或用户统计。

围绕“一个简单的 git 命令终端界面”核验 jesseduffield/lazygit 时,应把 README 的描述落到可观察的输入、命令和输出。先固定当前发布版本与运行环境,再执行本节涉及的操作,记录成功路径、错误信息、资源消耗和未实现项。README 没有说明的兼容性不要补写成保证,尤其要把依赖的外部服务、凭据、硬件或网络条件单独列出。对于团队采用,还应将这项检查结果与仓库的发布记录和许可证一起留档,方便后续升级时复测。

暂存、变基和日常操作

README 用动画演示了一组日常操作。你可以按空格键暂存单行,按 v 选择范围,按 a 选择整个 hunk。交互式变基以 i 开始,然后可以对 待处理条目 提交执行 squash、fixup、drop、edit、上移和下移,通过 m 打开变基选项菜单。cherry-pick 是对提交的复制和粘贴,bisect 从提交视图按 b 开始,reset 菜单中的 nuke 选项会清除 git status 显示的所有内容,包括脏的子模块。

围绕“暂存、变基和日常操作”核验 jesseduffield/lazygit 时,应把 README 的描述落到可观察的输入、命令和输出。先固定当前发布版本与运行环境,再执行本节涉及的操作,记录成功路径、错误信息、资源消耗和未实现项。README 没有说明的兼容性不要补写成保证,尤其要把依赖的外部服务、凭据、硬件或网络条件单独列出。对于团队采用,还应将这项检查结果与仓库的发布记录和许可证一起留档,方便后续升级时复测。

补丁、工作树和撤销

除基础功能外,README 还介绍了一些在命令行上更难完成的操作。可以从旧提交构建自定义补丁,从该提交中移除补丁,或反向应用补丁。可以标记基础提交,然后仅将特性分支的提交变基到另一个分支。在分支视图中按 w 可以创建工作树。撤销和重做绑定到 z 和 shift+z,README 指出撤销使用 reflog,因此无法撤销对工作树或暂存区的更改。提交图按作者着色,并突出显示所选提交的父提交。比较两个提交时,先用 shift+w 标记一个,再选择另一个;可以反转 diff 或按 escape 退出。如果安装了 gh 工具并完成认证,分支面板可以显示 GitHub 拉取请求。

围绕“补丁、工作树和撤销”核验 jesseduffield/lazygit 时,应把 README 的描述落到可观察的输入、命令和输出。先固定当前发布版本与运行环境,再执行本节涉及的操作,记录成功路径、错误信息、资源消耗和未实现项。README 没有说明的兼容性不要补写成保证,尤其要把依赖的外部服务、凭据、硬件或网络条件单独列出。对于团队采用,还应将这项检查结果与仓库的发布记录和许可证一起留档,方便后续升级时复测。

安装和分发

README 列出了许多安装路径:适用于 Windows、macOS 10.12+ 和 Linux 的二进制发行版,以及 Homebrew、MacPorts、Void Linux、Scoop、Arch Linux、Fedora、Amazon Linux 2023、CentOS Stream、Solus、Debian 和 Ubuntu、Funtoo、Gentoo、openSUSE、NixOS、Flox、FreeBSD、Termux、Conda、Go、Chocolatey 和 Winget 的软件包。还提到了第三方 dev container 功能。README 警告说,这些软件包大多由第三方维护,用户应自行验证。手动安装时,README 说可以克隆仓库并运行 go install,或使用 go run main.go 一步编译并运行。

围绕“安装和分发”核验 jesseduffield/lazygit 时,应把 README 的描述落到可观察的输入、命令和输出。先固定当前发布版本与运行环境,再执行本节涉及的操作,记录成功路径、错误信息、资源消耗和未实现项。README 没有说明的兼容性不要补写成保证,尤其要把依赖的外部服务、凭据、硬件或网络条件单独列出。对于团队采用,还应将这项检查结果与仓库的发布记录和许可证一起留档,方便后续升级时复测。

使用和配置

使用方法很简单:在 git 仓库内的终端中调用 lazygit。可以在 shell 的 rc 文件中添加像 lg 这样的别名。README 在单独的 docs 文件夹中记录了按键绑定,并解释了如何通过设置 LAZYGIT_NEW_DIR_FILE 和使用 shell 函数让 shell 在退出时切换目录。配置见 docs/Config.md,还有专门的文档介绍自定义 diff 渲染器和自定义命令。如果安装了 git-flow 工具,lazygit 支持 Gitflow;在分支视图中按 i 可以查看 Gitflow 选项。README 没有记录完整的命令行参数列表,只提到了贡献部分中的 debug 和 logs 参数。

围绕“使用和配置”核验 jesseduffield/lazygit 时,应把 README 的描述落到可观察的输入、命令和输出。先固定当前发布版本与运行环境,再执行本节涉及的操作,记录成功路径、错误信息、资源消耗和未实现项。README 没有说明的兼容性不要补写成保证,尤其要把依赖的外部服务、凭据、硬件或网络条件单独列出。对于团队采用,还应将这项检查结果与仓库的发布记录和许可证一起留档,方便后续升级时复测。

贡献、支持和替代品

该仓库欢迎贡献,并提供了贡献指南和 Discord 频道的链接。对于本地调试,README 建议在一个终端中运行 lazygit --debug,在另一个终端中运行 lazygit --logs,并排查看程序和日志输出。项目有一个赞助页面,README 请求赞助,因为 lazygit 不是全职工作。FAQ 解释了提交颜色:绿色表示提交已包含在 master 分支中,黄色表示未包含在 master 分支中,红色表示尚未推送到上游分支。README 还列出了替代品:GitUI、tig 和 GitArbor TUI。

围绕“贡献、支持和替代品”核验 jesseduffield/lazygit 时,应把 README 的描述落到可观察的输入、命令和输出。先固定当前发布版本与运行环境,再执行本节涉及的操作,记录成功路径、错误信息、资源消耗和未实现项。README 没有说明的兼容性不要补写成保证,尤其要把依赖的外部服务、凭据、硬件或网络条件单独列出。对于团队采用,还应将这项检查结果与仓库的发布记录和许可证一起留档,方便后续升级时复测。

许可证和来源限制

该项目采用 MIT 许可证,版权归 Jesse Duffield 所有(2018)。许可证授予使用、复制、修改、合并、发布、分发、再许可和出售软件副本的权利,但需包含版权和许可声明。软件按原样提供,不提供任何形式的保证。许可证文本没有涉及安全状况、支持承诺或贡献政策;这些需要查看 README,而 README 也没有说明版本历史或基准测试结果。

围绕“许可证和来源限制”核验 jesseduffield/lazygit 时,应把 README 的描述落到可观察的输入、命令和输出。先固定当前发布版本与运行环境,再执行本节涉及的操作,记录成功路径、错误信息、资源消耗和未实现项。README 没有说明的兼容性不要补写成保证,尤其要把依赖的外部服务、凭据、硬件或网络条件单独列出。对于团队采用,还应将这项检查结果与仓库的发布记录和许可证一起留档,方便后续升级时复测。

编辑结论

lazygit 适合已经熟悉 Git、希望在终端内完成逐行暂存、交互式变基、工作树和提交比较的人;不适合把 TUI 当成 Git 风险隔离层的人。先在临时仓库中验证 z、Shift+z、nuke 和变基快捷键的实际行为,再把配置与别名带入日常仓库。

官方来源

  1. Official README
  2. Project repository
  3. Release notes
社区笔记

社区笔记