生成tag号的脚本

平时改完bug重新部署测试环境,总要重新打tag,虽然也就几行git命令的事,但能用一句命令解决还是舒服的

在scripts新建文件 generateTag.js

js 复制代码
/**
 * 基于当前分支生成 tag 号,并推送至远程
 */
const { execSync } = require('child_process');
const readline = require('readline');

// 生成当前时间的 tag,格式为 YYYYMMDDHHmmss
function getCurrentTag() {
    const now = new Date();
    const pad = n => n < 10 ? '0' + n : n;
    return [
        now.getFullYear(),
        pad(now.getMonth() + 1),
        pad(now.getDate()),
        pad(now.getHours()),
        pad(now.getMinutes()),
        pad(now.getSeconds())
    ].join('');
}


try {
    // 获取当前分支名
    const branch = execSync('git rev-parse --abbrev-ref HEAD').toString().trim();
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout
    });

    rl.question(`当前分支为 "${branch}",确定要在该分支上打 tag 并推送吗?(y/N): `, (answer) => {
        if (answer.toLowerCase() !== 'y') {
            console.log('操作已取消。');
            rl.close();
            process.exit(0);
        }
        try {
            const tag = getCurrentTag();
            execSync(`git tag ${tag}`, { stdio: 'inherit' });
            execSync(`git push origin ${tag}`, { stdio: 'inherit' });
            console.log(`Tag ${tag} 已创建并推送到远端`);
        } catch (err) {
            console.error('创建或推送 tag 失败:', err.message);
            process.exit(1);
        }
        rl.close();
        process.exit(0);
    });
    return;
} catch (err) {
    console.error('创建或推送 tag 失败:', err.message);
    process.exit(1);
}

在package.json中的'scripts'添加

js 复制代码
  "tag": "node ./scripts/generateTag"

使用

js 复制代码
npm run tag
相关推荐
han_15 小时前
一篇看懂国内外主流大模型:GPT、Claude、Gemini、DeepSeek、通义千问有什么区别?
前端·人工智能·llm
一行代码一行诗++15 小时前
注释是什么和注释该怎么写(C语言)
java·前端·javascript
涂兵兵_青石疏影15 小时前
beginPath-vs-save详解
前端
泽_浪里白条15 小时前
我在 Superset 6.x 做自定义图表 + Embedded SDK 集成的实战复盘(附踩坑清单)
前端·数据可视化
幽络源小助理16 小时前
小六壬排盘工具源码 自适应双端 纯原生HTML+JS
前端·javascript·html
Championship.23.2417 小时前
Open Source Pipeline Skill深度解析:自动化开源贡献全流程
前端·javascript·html
Bigger17 小时前
🧠 前端岗位的"结构性调整":现象背后的冷思考
前端·程序员·ai编程
薯老板17 小时前
vue组件之间的通信
前端·vue.js
迪菲赫尔曼17 小时前
从 0 到 1 打造工业级推理控制台:UltraConsole(Ultralytics + FastAPI + React)开源啦!
前端·yolo·react.js·计算机视觉·开源·fastapi
万邦科技Lafite17 小时前
京东开放API接口:item_get返回参数指南
java·前端·javascript·api·电商开放平台