Nodejs 通过子进程模块 child_process 获取 git 信息(分支,标签)

child_process

child_process 模块提供了衍生子进程的能力,用于在node 环境中执行子进程和其他操作,比如执行.cmd, .bat 和 shell 脚本。
Node.js v12.13.0 文档 child_process

这里可用 API child_process.exec(command[, options][, callback])child_process.execSync(command[, options]) 来获取 git 仓库信息。


git name-rev --name-only HEAD

git-name-rev - 查找给定转速的符号名称
git name-rev --name-only HEAD 这个命令会在终端输出你当前的版本或标签信息。

git name-rev --name-only HEAD 
===> test 

git name-rev --name-only HEAD
===> v4.3.1
组合使用
//同步子进程
const version = child_process.execSync('git name-rev --name-only HEAD', { 'encoding': 'utf8' });
===> v4.3.1 


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

const getVersion = () => {
    return new Promise((resovle, reject) => {
        childProcess.exec(`git name-rev --name-only HEAD`, { encoding: 'utf-8' }, (stdout, error, status, output) => {
            error ? reject(error) : resovle(stdout)
        });
    })
}

getVersion().then(res => {
    console.log(res)
}).catch(e => {
    console.log(e)
})

猜你喜欢

转载自blog.csdn.net/Ruffaim/article/details/102800616