Git Tag 提交工具使用说明
简介
这是一个交互式的Git Tag提交工具,帮助开发者更方便地创建和推送Git标签。该工具会自动检测当前分支、未提交的更改,并提供版本号建议,简化了标签管理流程。
功能特性
- ✅ 交互式命令行界面,易于使用
- ✅ 自动检测当前分支
- ✅ 检测未提交的更改并提供警告
- ✅ 自动生成下一个版本号建议
- ✅ 验证版本号格式是否符合语义化版本规范
- ✅ 支持添加标签描述
- ✅ 一键创建和推送标签
- ✅ 可选生成版本文件
- ✅ 可选构建项目
- ✅ 跨平台支持
使用方法
1. 安装依赖
该工具使用Node.js的内置模块,无需额外安装依赖。
2. 运行工具
使用npm脚本命令运行:
bash
npm run git-tag或者直接运行脚本文件:
bash
node scripts/git-tag-cli.js3. 交互流程
- 显示工具信息:显示工具标题和当前分支
- 检查未提交更改:如果存在未提交的更改,会提示用户
- 版本号建议:自动生成下一个版本号建议
- 输入版本号:用户可以输入自定义版本号,或使用默认值
- 输入标签描述:可选添加标签描述
- 确认操作:显示操作确认信息,用户确认后执行
- 创建本地标签:创建Git标签
- 推送标签到远程:将标签推送到远程仓库
- 生成版本文件:可选生成版本文件
- 构建项目:可选构建项目
版本号格式
该工具支持语义化版本规范(Semantic Versioning),版本号格式如下:
vX.Y.Z其中:
X表示主版本号(Major)Y表示次版本号(Minor)Z表示补丁版本号(Patch)
例如:v1.0.0、v2.1.3、v3.0.0-beta.1
示例流程
🚀 Git Tag 提交工具
==================
当前分支: master
⚠️ 警告: 存在未提交的更改,请先提交或暂存更改
是否继续? (y/N) y
建议版本号: v1.0.1
请输入版本号 (默认: v1.0.1) v1.0.1
请输入标签描述 (可选) 修复了登录页面的bug
📋 操作确认
版本号: v1.0.1
标签描述: 修复了登录页面的bug
当前分支: master
是否确认创建并推送标签? (y/N) (默认: y) y
📦 创建本地标签...
✅ 本地标签 v1.0.1 创建成功
📤 推送标签到远程...
✅ 标签 v1.0.1 推送成功
是否生成版本文件? (y/N) (默认: y) y
📄 生成版本文件...
是否构建项目? (y/N) (默认: n) n
🎉 标签提交完成!
版本号: v1.0.1
远程地址: https://gitee.com/njy_3/l-pc-front/releases/tag/v1.0.1脚本配置
在 package.json 文件中已经添加了脚本命令:
json
"scripts": {
"git-tag": "node scripts/git-tag-cli.js"
}注意事项
未提交的更改:如果存在未提交的更改,工具会提示用户确认是否继续。建议在创建标签前确保代码已经提交。
版本号格式:工具会验证版本号格式是否符合语义化版本规范,如果不符合会提示错误。
标签推送:工具会直接将标签推送到远程仓库,请确保您有推送权限。
分支切换:建议在主分支(如master、main)上创建标签。
构建项目:如果选择构建项目,工具会执行
npm run build:version命令,该命令会先生成版本文件,然后构建项目。
自定义配置
如果需要修改工具的默认行为,可以编辑 scripts/git-tag-cli.js 文件:
- 默认版本号建议:修改
getNextVersion函数 - 版本号验证规则:修改
validateSemanticVersion函数 - 远程仓库地址:修改最后的远程地址输出
技术实现
该工具使用Node.js的内置模块实现:
readline:实现交互式命令行界面child_process:执行Git命令fs和path:文件系统操作
兼容性
该工具兼容所有支持Node.js的平台,包括:
- Windows
- macOS
- Linux
版本历史
- v1.0.0:初始版本
- 实现基本的标签创建和推送功能
- 支持交互式命令行界面
- 自动检测当前分支和未提交更改
- 自动生成版本号建议
- 支持语义化版本验证
许可证
MIT