来源:juejin.cn/post/7494650842701873163
👉 欢迎加入小哈的星球,你将获得: 专属的项目实战(多个项目) / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《Spring AI 项目实战》正在更新中..., 基于 Spring AI + Spring Boot 3.x + JDK 21;
- 《从零手撸:仿小红书(微服务架构)》 已完结,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍;
演示地址:http://116.62.199.48:7070/
- 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;
- 专栏阅读地址:https://www.quanxiaoha.com/column
截止目前,累计输出 90w+ 字,讲解图 3713+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有3300+小伙伴加入
从 Git 操作痛点出发,我为什么开发了 gix?
工作中你有没有遇到过这种情况:
某个功能写了一堆 commit,最后要上线前合并成一个。每次都要输入这一长串命令:
git reset --soft HEAD~2 && git commit --edit -m "" --no-verify
要么输错,要么复制粘贴,很烦很低效。
于是我干脆搞了个自己的 Git 命令行工具 —— gix,一键解决这些重复操作,体验丝滑不止一点点。
这篇文章就是我开发这个工具的起点:
从痛点出发,到最小可用版本上线,再到未来的功能扩展,一步步落地。
痛点:重复的 Git 操作太机械
我们团队在提交代码时有一些默认规范,比如:
但是这些事情:
举个例子,我之前经常得输入下面这段命令来 squash 最近两个提交:
git reset --soft HEAD~2 && git commit --edit -m "feat: 优化主题切换逻辑" --no-verify
这段命令熟是熟了,但每次都要想一下、改一下 message、还要加 --no-verify……
真的烦。
解法:做一个自己的 Git 命令行工具
于是我就动手搞了一个 CLI 工具,名字就叫 gix —— git 扩展工具的意思。
它的目标非常简单:
用一句
gix squash
命令,干掉所有重复操作。
现在 gix 已经支持多个高频 Git 操作,后续还会不断扩展。
项目结构:Monorepo 模式开发 CLI
我用的是 TurboRepo + pnpm
做 monorepo
,结构如下:
/gix
├── packages
│ ├── cli # 核心 CLI 命令模块
│ └── docs # 文档站点(VuePress)
├── .gitignore
├── turbo.json
└── package.json
技术选型:
| | |
---|
| Node.js + Commander + Prompts | |
| |
|
| | |
功能速览与使用方式
以下是目前 gix 支持的几个核心功能👇
gix merge: 交互式合并任意两个提交
gix merge
会提示你输入:
也可以直接指定:
gix merge -f -m "feat: 合并优化配置文件逻辑"
gix squash: 快速合并最近 N 次提交
gix squash -n 3 # 合并最近 3 次提交
gix squash --all # 从第一个提交开始合并(全量 squash)
gix doctor: 诊断 Git 仓库状态
gix doctor
会检查:
gix reset: 软重置到远程分支
gix reset
等价于:
git reset --soft origin/your-branch
保留所有本地变更,仅撤销本地 commit,适合重开合并、重提 PR 等场景。
项目地址
https://github.com/nianyi778/gix-cli
👉 欢迎加入小哈的星球,你将获得:
专属的项目实战(多个项目) / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《Spring AI 项目实战》正在更新中..., 基于 Spring AI + Spring Boot 3.x + JDK 21;
- 《从零手撸:仿小红书(微服务架构)》 已完结,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍;演示地址:http://116.62.199.48:7070/
- 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;
- 专栏阅读地址:https://www.quanxiaoha.com/column
截止目前,累计输出 90w+ 字,讲解图 3713+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有3300+小伙伴加入
最近面试BAT,整理一份面试资料《Java面试BATJ通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。
PS:因公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。
点“在看”支持小哈呀,谢谢啦