数据STUDIO

无限撤回,可视化操作,开源工具Lazygit爆火,狂揽65K星

Image

Image

LazyGit:终端里的Git可视化革命,开发者的高效利器。

Image

在日常开发工作中,代码版本管理是每个开发者必不可少的工作环节。Git虽然功能强大,但其复杂的命令和参数往往令人头疼。有时候一不小心误删了项目,麻烦就大了。每次git 操作时,真是胆战心惊😱

LazyGit界面演示

LazyGit界面演示

今天云朵君给大家介绍一个神器,让我大胆操作git 项目—— LazyGit终端神器。这款使用Go语言编写的开源Git终端界面工具,通过将复杂的Git操作可视化,让版本控制变得像玩游戏一样流畅自然。可以通过界面操作的方式,快速地进行拉取分支、切换分支、提交变更等操作。大大提高了代码管理的效率,这款工具也受到广泛开发人员的喜爱,斩获了64.9K星。

Image

https://github.com/jesseduffield/lazygit

什么是LazyGit?

LazyGit是一款轻量级开源Git UI工具,专为喜欢在终端工作但又需要舒适视觉界面的开发者打造。它不需要你切换窗口到GUI客户端,而是直接在终端内提供键盘控制的易用界面,用于快速管理常见的Git操作。

Image

无论是commit、push、pull、解决merge冲突还是分支切换,LazyGit都能轻松应对。它不仅是一个漂亮的终端UI,更是由开发者为开发者构建的工具,完美契合现代开发工作流。

commit

commit

Push or Pull

Push or Pull

为什么选择LazyGit?

与传统Git命令行操作相比,LazyGit带来了三重革命性体验:

终端里的图形化:与需要切换窗口的GUI工具不同,LazyGit直接在终端内构建全键盘可控的TUI界面。你可以实时查看分支图谱、暂存区状态、提交历史,甚至通过方向键快速定位冲突文件,按下空格键即可完成代码块级暂存——这种"所见即所得"的操作体验,让命令行玩家直呼过瘾。

交互式魔法操作:传统Git最让人头疼的rebase -i操作,在LazyGit中化身为可视化拖拽调整。通过e键进入交互式rebase模式,直接使用s(压缩)、f(修复)、d(删除)等快捷键调整提交顺序,甚至能通过shift+↑/↓批量移动多个提交,彻底告别手动编辑.git/rebase-merge文件的噩梦。

无限后悔药:误删文件或提交?按下z键即可无限次撤销操作,配合ctrl+z重做功能,完美实现"时光倒流"。更贴心的是,所有操作记录均基于Git原生reflog机制,无需担心数据丢失。

Image

核心功能亮点

LazyGit的功能覆盖了Git操作的方方面面,以下是一些令人印象深刻的核心功能:

指定行暂存功能

指定行暂存功能

  • 指定行暂存:可以在选定的行上按空格键将其暂存,或者按v键开始选择一系列行,还可以按a选择当前修改块的全部内容。
  • 交互式变基:按i开始一个交互式变基。随后,可以使用s进行合并、f进行修正、d进行删除、e进行编辑,或使用ctrl+i向上移动、ctrl+j向下移动待处理提交。
  • 工作树功能:支持工作树功能,可以同时运行多个分支,无需切换分支时存储。在分支视图中按w键从所选分支创建工作树并切换到它。
工作树功能演示

工作树功能演示

  • 自定义补丁(变基魔法):可以从旧提交构建自定义补丁,然后从提交中移除该补丁,拆分出新提交,反向应用补丁到索引等。这在需要从历史提交中删除多余注释等场景中特别有用。
自定义补丁功能演示

自定义补丁功能演示

  • 二分查找功能:在提交视图中按b将一个提交标记为好/坏,快速开始Git二分查找,高效定位引入问题的提交。
  • 提交图表:支持所有提交以图表的形式展现,使用+和_循环切换屏幕来显示提交图表,并且会有颜色区分,非常方便查看内容。
提交图表展示

提交图表展示

  • 重置工作区:如果想清除某个未提交的内容,可以使用shift+d打开重置菜单,然后选择nuke选项。
重置工作区功能演示

重置工作区功能演示

  • 撤销:可以使用z键撤销上一个操作,然后使用ctrl+z进行重做。例如删除一些提交,然后使用z撤销这些操作。
撤销功能演示

撤销功能演示

安装指南

LazyGit的安装非常简单,支持所有主流平台:

macOS安装:

brew install lazygit

Windows安装:

scoop install lazygit
# 或
choco install lazygit

Ubuntu/Debian安装:

sudo apt install lazygit

Arch Linux安装:

sudo pacman -S lazygit

你也可以直接从GitHub Releases下载预编译的二进制文件,或者通过Go语言环境从源码编译安装。

快速上手

使用LazyGit极其简单:在任意Git仓库目录下执行lazygit命令即可启动界面。LazyGit的界面分为多个面板,可以通过按面板对应的数字键快速切换:

  1. Files:显示修改的文件
  2. Commits:提交历史
  3. Branches:分支列表
  4. Remotes:远程仓库
  5. Tags:标签管理

基本导航使用方向键或hjkl键(vim风格),按下shift+?可以查看所有键位绑定:

键位绑定参考

键位绑定参考

下面是一个基本操作流程表:

操作目的
按键
说明
暂存文件/代码块Space
选择要暂存的文件或特定代码行
提交更改c
提交已暂存的更改
写入提交信息Enter
输入提交信息后按Enter确认
推送更改Shift + P
将提交推送到远程仓库
拉取更新p
从远程仓库拉取最新更改
解决冲突m
当存在冲突时,选择文件按m进行合并
退出LazyGitq
退出LazyGit界面

高级技巧与最佳实践

LazyGit的真正强大之处在于其高级功能和工作流优化:

工作树并行开发策略

LazyGit的工作树功能允许开发者在同一仓库中同时处理多个分支,无需频繁切换或使用stash。这对于需要同时开发多个功能或修复多个bug的场景特别有用:

# 在config.yml中配置工作树相关设置
gui:
showFileTree:true# 显示文件树
showRootItemInFileTree:true# 显示根项目

git:
autoRefresh:true# 自动刷新
refreshInterval:5# 刷新间隔5秒

自定义命令自动化

LazyGit的自定义命令系统允许开发者创建个性化的Git操作流程,将复杂操作简化为单键触发:

customCommands:
# 快速创建功能分支
-key:'f'
context:'localBranches'
description:'创建功能分支'
prompts:
-type:'input'
title:'功能分支名称'
key:'featureName'
command:'git checkout -b feature/{{.Form.featureName}}'

# 一键提交并推送
-key:'P'
context:'files'
description:'提交并推送'
command:'git commit -m "{{.SelectedFile.Name}} changes" && git push'

团队协作优化

在现代软件开发中,高效的团队协作是项目成功的关键因素。LazyGit为团队协作提供了丰富的功能和直观的操作体验:

分支命名规范与颜色编码:LazyGit支持通过配置文件为特定模式的分支设置颜色,这对于遵循特定命名规范的团队特别有用:

gui:
branchColorPatterns:
feature/.*:blue# 功能分支显示为蓝色
bugfix/.*:red# bug修复分支显示为红色
release/.*:green# 发布分支显示为绿色

性能与资源占用

相较于GitKraken等重量级GUI工具,LazyGit的零延迟启动和极低内存占用(仅约10MB)让它成为终端开发者的心头好。而与tig等传统TUI工具相比,其鼠标支持和自定义键位功能又大幅提升了操作自由度。

理想使用场景

LazyGit是以下场景的绝佳选择:

  • 后端或全栈开发人员:希望获得Git速度而无需记忆命令
  • 前端开发人员:在monorepo中工作
  • DevOps工程师:使用Git管理配置或基础设施即代码
  • 学生或初学者:学习Git并需要视觉反馈
  • 高级用户:生活在终端中,喜欢键盘驱动工具

写在最后

为什么你应该尝试LazyGit?

LazyGit不仅仅是一个Git前端工具,更是对传统Git工作流的彻底革新。它兼具命令行工具的高效和GUI工具的直观,让开发者能够以更高效、精确的方式管理代码库历史记录,提升版本控制工作的生产力和安全性。

无论你是常年与Git打交道的资深开发者,还是刚刚开始学习版本控制的新手,LazyGit都值得一试。它的直观界面降低了Git操作的门槛,同时提供了足够强大的功能满足高级用户的需求。

最重要的是,LazyGit是完全免费和开源的,采用Apache 2.0许可证,你可以自由使用、修改和分发。它的开发活跃,社区热情,文档丰富,遇到问题时很容易找到帮助和支持。

现在就安装LazyGit,体验终端Git操作的革命性变革吧!

🏴‍☠️宝藏级🏴‍☠️ 原创公众号『数据STUDIO』内容超级硬核。公众号以Python为核心语言,垂直于数据科学领域,包括可戳👉Python|MySQL|数据分析|数据可视化|机器学习与数据挖掘|爬虫等,从入门到进阶!

长按👇关注- 数据STUDIO -设为星标,干货速递ImageImage