Skip to content

Git Tag 提交工具使用说明

简介

这是一个交互式的Git Tag提交工具,帮助开发者更方便地创建和推送Git标签。该工具会自动检测当前分支、未提交的更改,并提供版本号建议,简化了标签管理流程。

功能特性

  • ✅ 交互式命令行界面,易于使用
  • ✅ 自动检测当前分支
  • ✅ 检测未提交的更改并提供警告
  • ✅ 自动生成下一个版本号建议
  • ✅ 验证版本号格式是否符合语义化版本规范
  • ✅ 支持添加标签描述
  • ✅ 一键创建和推送标签
  • ✅ 可选生成版本文件
  • ✅ 可选构建项目
  • ✅ 跨平台支持

使用方法

1. 安装依赖

该工具使用Node.js的内置模块,无需额外安装依赖。

2. 运行工具

使用npm脚本命令运行:

bash
npm run git-tag

或者直接运行脚本文件:

bash
node scripts/git-tag-cli.js

3. 交互流程

  1. 显示工具信息:显示工具标题和当前分支
  2. 检查未提交更改:如果存在未提交的更改,会提示用户
  3. 版本号建议:自动生成下一个版本号建议
  4. 输入版本号:用户可以输入自定义版本号,或使用默认值
  5. 输入标签描述:可选添加标签描述
  6. 确认操作:显示操作确认信息,用户确认后执行
  7. 创建本地标签:创建Git标签
  8. 推送标签到远程:将标签推送到远程仓库
  9. 生成版本文件:可选生成版本文件
  10. 构建项目:可选构建项目

版本号格式

该工具支持语义化版本规范(Semantic Versioning),版本号格式如下:

vX.Y.Z

其中:

  • X 表示主版本号(Major)
  • Y 表示次版本号(Minor)
  • Z 表示补丁版本号(Patch)

例如:v1.0.0v2.1.3v3.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"
}

注意事项

  1. 未提交的更改:如果存在未提交的更改,工具会提示用户确认是否继续。建议在创建标签前确保代码已经提交。

  2. 版本号格式:工具会验证版本号格式是否符合语义化版本规范,如果不符合会提示错误。

  3. 标签推送:工具会直接将标签推送到远程仓库,请确保您有推送权限。

  4. 分支切换:建议在主分支(如master、main)上创建标签。

  5. 构建项目:如果选择构建项目,工具会执行 npm run build:version 命令,该命令会先生成版本文件,然后构建项目。

自定义配置

如果需要修改工具的默认行为,可以编辑 scripts/git-tag-cli.js 文件:

  • 默认版本号建议:修改 getNextVersion 函数
  • 版本号验证规则:修改 validateSemanticVersion 函数
  • 远程仓库地址:修改最后的远程地址输出

技术实现

该工具使用Node.js的内置模块实现:

  • readline:实现交互式命令行界面
  • child_process:执行Git命令
  • fspath:文件系统操作

兼容性

该工具兼容所有支持Node.js的平台,包括:

  • Windows
  • macOS
  • Linux

版本历史

  • v1.0.0:初始版本
    • 实现基本的标签创建和推送功能
    • 支持交互式命令行界面
    • 自动检测当前分支和未提交更改
    • 自动生成版本号建议
    • 支持语义化版本验证

许可证

MIT

最近更新