js获取项目git分支信息
1、git bash 获取分支信息
1 | # 获取当前分支名 |
上面的代码是通过git命令获取的分支信息,怎么可以在项目代码里面获取分支信息呢?请看下文👇
2、JavaScript 通过 execa 插件获取项目分支信息
execa具备如下特点:
Promise接口
从输出中删除最后的换行符,这样您就不必执行stdout.trim()
支持跨平台的shebang二进制文件
改进Windows支持。
更高的最大缓冲区。100mb而不是200kb。
按名称执行本地安装的二进制文件。
在父进程终止时清除派生的进程。
从 stdout和stderr获得交错输出,类似于在终端上打印的输出。(异步)
可以指定文件和参数作为一个单一的字符串没有外壳
更具描述性的错误。
安装 execa
1
npm install execa -S
简单使用 execa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19(async () => {
const {stdout} = await execa('echo', ['unicorns']);
console.log(stdout);
//=> 'unicorns'
})();
// stdout 表示执行命令的输出结果
/*{
command: 'echo unicorns',
escapedCommand: 'echo unicorns',
exitCode: 0,
stdout: '"unicorns"',
stderr: '',
all: undefined,
failed: false,
timedOut: false,
isCanceled: false,
killed: false
}*/execa还可以执行脚本命令,并输出结果,下面看一下如何在代码里面获取当前操作的分支👇
实际项目中的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20function getGitBranch() {
const res = execa.commandSync('git rev-parse --abbrev-ref HEAD');
return res.stdout;
}
const curbranch = getGitBranch()
console.log('curbranch==', curbranch); // master
// 以下是res输出
curbranch== master
{
command: 'git rev-parse --abbrev-ref HEAD',
escapedCommand: 'git rev-parse --abbrev-ref HEAD',
exitCode: 0,
stdout: 'master', # 命令执行结果输出
stderr: '',
failed: false,
timedOut: false,
isCanceled: false,
killed: false
}下面说一下脚本获取方式
3、脚本获取
我在掘金 git编写脚本 组合 commit-msg 一文中使用脚本获取分支信息,感兴趣可以看一下。
可以看一下项目中
.git/HEAD
文件中的内容HEAD指向最新放入仓库的版本
1 | ref: refs/heads/dev_0922 |
- 编写脚本
1 |
|
我是 甜点cc
热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。主要致力于分享实用技术干货,希望可以给一小部分人一些微小帮助。
我排斥“新人迷茫,老人看戏”的现象,希望能和大家一起努力破局。营造一个良好的技术氛围,为了个人、为了我国的数字化转型、互联网物联网技术、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。