当前位置: 首页 > news >正文

lazygit 快速上手指南:8 个 Git 高频操作如何在一块终端屏里完成

lazygit 快速上手指南:8 个 Git 高频操作如何在一块终端屏里完成

【免费下载链接】lazygitsimple terminal UI for git commands项目地址: https://gitcode.com/GitHub_Trending/la/lazygit

lazygit 是一个运行在终端里的 Git 图形界面工具。本文带你从安装到日常提交、分支切换,再到 rebase 与冲突处理,用一条操作路径讲清这套 lazygit 快捷键工作流。

一、先说说命令行里的那些别扭时刻

写过git rebase -i的人都记得那个 TODO 文件:要改的提交顺序、要合并的提交,全靠手敲一行行指令。只想暂存一个文件里的两行代码,得打开 patch 编辑器按代码块一步步确认。切换分支前被告知工作区不干净,先git stash,切完再git stash pop,最后发现压根没冲突。

lazygit 做的事,就是把这类操作从「敲命令」变成「按按键」:它不替代 git,而是把 git 命令映射到界面上,你在面板里选对象、按快捷键,剩下的命令由它在后台执行。

二、30 秒认知:它是什么、和 git 什么关系

一句话:lazygit 是 git 的可视化外壳,底层跑的还是你机器上那个 git 版本,仓库数据不变,只是操作方式变了。适合三类人:天天写代码但记不住 git 参数的人、想摆脱编辑器切换的人、以及已经会用 git 但想少敲一半命令的人。你只需要会git status这个概念,剩下的交给界面。

三、安装三步走

这一节只解决一件事:把 lazygit 跑起来。

3.1 安装(macOS 或 Windows 任选其一)

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

Linux 发行版基本都有对应包管理器渠道,从源码编译则先拉取仓库git clone https://gitcode.com/GitHub_Trending/la/lazygit,进入目录执行go install

3.2 首次启动与目录约定

cd进任意 git 仓库,直接敲lazygit。启动后你会看到几个面板:左侧是文件、分支、远程、标签等列表,中间是主视图(差异内容),右侧是提交历史,底部是状态条。面板之间用tab切换焦点,按?随时弹出当前面板的快捷键菜单——这是你以后查键位最省力的方式。

3.3 完成第一个提交

在文件面板选中一个改动文件,按space暂存,按c在弹出的输入框里写提交信息并回车,再按P推送。三步走完,你已经跑通了 lazygit 的最小闭环。

四、日常高频动作:状态 → 暂存 → 提交 → 分支 → 历史 🎯

日常开发 90% 的时间就发生在这条路径上,记住下面这一串按键基本够用:

  • 看状态:文件面板实时列出新增、修改、删除的文件,状态栏显示分支名与领先/落后提交数;手动刷新按R
  • 暂存space暂存整个文件;只想要其中几行?按enter进入暂存视图,再用space按行、按块勾选。
  • 提交c提交,A用当前暂存内容修补上一次提交,改错提交信息不用重开终端。
  • 分支tab切到分支面板,space检出选中分支,n新建分支,c按名称检出,-跳回上一个分支——最后这个键会让你频繁感谢自己。
  • 看历史:右侧提交面板用图形显示分支汇合关系,enter查看某次提交动了哪些文件,y复制提交哈希或信息,/在任意面板里开始过滤搜索。

五、进阶操作:rebase、拣选、冲突、贮藏

这些动作不用背原理,按「什么时候用、怎么按、按完看到什么」记住即可。

rebase(整理提交历史)

  • 何时用:本地提交推出去之前,想把一串零碎提交压干净。
  • 怎么操作:在提交面板按i进入交互式变基,对目标提交按s合并、d丢弃、ctrl+k/ctrl+j上下移动,处理完按m选继续。想把当前分支变基到另一条分支上,则直接在分支面板选中目标分支按r
  • 结果长什么样:提交列表被重写,零碎提交消失,git status显示领先数减少。

cherry-pick(拣选单个提交)

  • 何时用:别的分支上有个提交想要,但不想整条分支合并过来。
  • 怎么操作:在那个提交上按C标记复制,切回目标分支按V粘贴。
  • 结果长什么样:目标分支多出这个提交,哈希是新生成的。

冲突处理(合并或变基卡住时)

  • 何时用:rebase / merge 停在冲突状态,主面板顶部出现提示。
  • 怎么操作:冲突文件会标出来,按M打开解决菜单,用外部编辑器改完保存,再按m选继续;想放弃整个操作也走m的中止选项。
  • 结果长什么样:冲突标记消失,分支恢复可推送状态。

stash(暂藏工作区)

  • 何时用:手上改动没完成,但急需切分支。
  • 怎么操作:文件面板按s贮藏全部改动,S可选只藏已暂存或未暂存部分;之后在贮藏面板对条目按space恢复,d丢弃。
  • 结果长什么样:文件面板清空,贮藏面板里多一条记录,随时可找回。

六、个性化:改配置就够了

不想用默认键位?改一个配置文件,不碰代码:

  1. alt+shift+c直接打开配置文件(Linux 默认在~/.config/lazygit/config.yml)。
  2. gui.theme换配色,深色终端选默认色即可。
  3. language改界面语言,支持中文在内的多语种。
  4. keybinding段整体自定义键位,常用键都有文档说明。
  5. gui.showFileTree控制文件列表用树形还是平面布局。
  6. diff 上下文行数用git.diffContextSize调,配合{}键可运行时增减。

七、常见坑与排错

  • 面板看起来不更新:lazygit 不自动拉取远程,按f执行 fetch、R刷新状态,领先/落后数字才会变化。
  • rebase 后推送被拒:历史被重写,普通 push 会被拒绝,按P时选 force-with-lease 方式推送即可,比手敲git push --force-with-lease安全地多一层。
  • 误删了提交想撤销:按z撤销、Z重做,底层走 reflog;注意它只覆盖提交和分支层面,不覆盖工作区文件的丢弃。
  • 工作区脏到无法切分支:文件面板按D调出重置菜单,或按s先贮藏,别硬用F强制检出——那是真丢改动的操作。

八、团队协作:同步、上游与 PR 前的整理

多人协作场景下,lazygit 把同步动作收敛到三个键:ffetch、ppull、Ppush。分支面板按u可以给当前分支设置或取消上游,之后 pull/push 就不用再猜推去哪。

PR 提交前的标准动作:确认改动完整后,按i进交互式变基,把调试、typo 类提交用s压进真正有意义的提交里,再按P推上去。历史干净,reviewer 翻起来也快。装了 GitHub CLI 的话,分支面板还能直接o创建 PR、G在浏览器里打开已有 PR,状态图标颜色直接反映 PR 是否已合并。

九、延伸资源

  • 官方配置文档:docs/Config.md
  • 中文快捷键清单:docs/keybindings/Keybindings_zh-CN.md
  • 范围选择与批量操作:docs/Range_Select.md
  • 撤销机制详解:docs/Undoing.md

一条实践建议:别急着背所有键位,先只用「space暂存、c提交、P推送、?查帮助」这四个键工作一周,第二周再补分支和 rebase 相关的键,记忆曲线会平缓很多。

结尾

lazygit 的价值不在功能多,而在它把「查状态、暂存、提交、切分支、理历史」这条你每天都在走的路压成了一排按键。现在打开终端,cd进你的仓库,敲下lazygit

【免费下载链接】lazygitsimple terminal UI for git commands项目地址: https://gitcode.com/GitHub_Trending/la/lazygit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4287970.html

相关文章:

  • 登录日志与管理员审计日志存储决策
  • 保姆级 | Linux 系统命令(tar解压和压缩)
  • Vue3进度条(Progress)
  • 2026年AI论文平台推荐:9款高效AI工具一站式清单
  • DSP算法FPGA实现:从理论到硬件的完整工程链路与实践指南
  • mermaid流程图
  • 千问本地部署实战:从Ollama到Spring AI的完整接入指南
  • 前端工程协作的构建与发布
  • IBASE MI1001 Mini-ITX工业主板:边缘计算与工控替换的可靠之选
  • REDRIVER2:PS1经典游戏《Driver 2》的现代C++重实现与逆向工程解析
  • C++ I/O流与模板编程:从基础原理到实战应用
  • AI+3D人体解剖可视化工具的技术实现与搭建指南
  • 创业产品如何识别价值主张和替代方案
  • 转向系统编程的选型方法
  • ai文章怎么去掉ai痕迹?朱雀AIGC检测后怎样降AI率又保留品牌事实
  • 从自我造题到自我迭代:35B模型如何用数据飞轮逼近万亿参数
  • 皮尔逊相关系数:从原理到实战,避开数据分析中的常见陷阱
  • 第二代Open Virtual Platforms API:从组件化建模到多核虚拟平台实战
  • 【算法】数字滤波
  • 基于TensorFlow与CNN的猫狗识别实战:从环境搭建到模型部署
  • 跨端界面选型看真实页面
  • WinForm应用实战开发指南 - 应用程序如何实现手写签名?
  • 效率工具评审从用户任务出发
  • STM8 I2C BUSY位卡死排查与恢复:从寄存器状态到总线释放方案
  • DV-1100边缘计算工控机选型与部署实战:从车载到产线
  • 蓝桥杯国赛真题深度解析:Java算法实战与避坑指南
  • Vue3折叠面板(Collapse)
  • 唯品会校招数据结构笔试题复盘:链表、二叉树与排序考点全解析
  • curl接口健康检查
  • Linux(CentOS)系统安装mysql8流程