网站地图    收藏   

主页 > 后端 > git教程 >

nodejs操作git

来源:未知    时间:2022-02-25 23:46 作者:小飞侠 阅读:

[导读] nodejs操作git */**定义模块和变量**/

-[]

constexec=require(child_process).exec;//异步子进程

*

constexecSync=require(child_process).execSync;//同步子进程

*

constfs=require(fs);//文件读取模块...

nodejs操作git

* /**定义模块和变量**/


- [ ] 

const exec = require('child_process').exec; //异步子进程


* 

const execSync = require('child_process').execSync; //同步子进程


* 

const fs = require('fs'); //文件读取模块


* 

const versionPath = 'version.txt'; //version路径


* 

const buildPath = 'dist'; //打包的路径


* 

const autoPush = true; //写入版本信息之后是否自动提交git上


* 

const commit = execSync('git show -s --format=%H').toString().trim(); //当前提交的版本号


* 




* 

/**程序开始**/


* 

var versionStr = ""; //版本信息字符串


* 




* 

// 如果versionPath存在,将先读取里边的版本信息


* 

if (fs.existsSync(versionPath)) {


* 

versionStr = fs.readFileSync(versionPath).toString() + '\n';


* 

}


* 




* 

// 根据版本信息是已存在commit,进行不同处理


* 

if (versionStr.indexOf(commit) != -1) {


* 

console.warn('\x1B[33m%s\x1b[0m', 'warming: 当前的git版本数据已经存在了!\n')


* 

} else {


* 

let name = execSync('git show -s --format=%cn').toString().trim(); //姓名


* 

let email = execSync('git show -s --format=%ce').toString().trim(); //邮箱


* 

let date = new Date(execSync('git show -s --format=%cd').toString()); //日期


* 

let message = execSync('git show -s --format=%s').toString().trim(); //说明


* 

versionStr = `git:${commit}\n作者:${name}<${email}>\n日期:${date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+' '+date.getHours()+':'+date.getMinutes()}\n说明:${message}\n${new Array(80).join('*')}\n${versionStr}`;


* 

fs.writeFileSync(versionPath, versionStr);


* 

// 写入版本信息之后,自动将版本信息提交到当前分支的git上


* 

if (autoPush) {


* 

execSync(`git commit ${versionPath} -m 自动提交版本信息`);


* 

execSync(`git push origin ${execSync('git rev-parse --abbrev-ref HEAD').toString().trim()}`);


* 

}


* 

}


* 




* 

// 将version文件移植到打包文件中


* 

if (fs.existsSync(buildPath)) {


* 

fs.writeFileSync(`${buildPath}/${versionPath}`, fs.readFileSync(versionPath));


* 

}


* 




* 

// 程序执行结束


* 

console.info('\x1B[32m%s\x1b[0m', [


* 

].join('\n'));




自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论