git bash 获取分支信息
# 获取当前分支名
git rev-parse --abbrev-ref HEAD
git branch --show-current# 获取当前hash
git rev-parse HEAD
git rev-parse --short HEAD# 短的
上面的代码是通过git命令获取的分支信息,怎么可以在项目代码里面获取分支信息呢?请看下文
JavaScript 通过 execa 插件获取项目分支信息 execa具备如下特点:
- Promise接口
- 从输出中删除最后的换行符,这样您就不必执行stdout.trim()
- 支持跨平台的shebang二进制文件
- 改进Windows支持。
- 更高的最大缓冲区。100mb而不是200kb。
- 按名称执行本地安装的二进制文件。
- 在父进程终止时清除派生的进程。
- 从 stdout和stderr获得交错输出,类似于在终端上打印的输出。(异步)
- 可以指定文件和参数作为一个单一的字符串没有外壳
- 更具描述性的错误。
- 安装 execa
npm install execa -S
- 简单使用 execa
(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还可以执行脚本命令,并输出结果,下面看一下如何在代码里面获取当前操作的分支
- 实际项目中的代码
function 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 }
下面说一下脚本获取方式
我在掘金 git编写脚本 组合 commit-msg 一文中使用脚本获取分支信息,感兴趣可以看一下。
- 可以看一下项目中
.git/HEAD
文件中的内容
ref: refs/heads/dev_0922
- 编写脚本
#!/bin/bash# 获取当前分支
line=$(head -n +1 .git/HEAD)
branch=${line##*/}
echo $branch # dev_0922
关注我,你会发现一个踏实努力的宝藏前端,让我们一起学习,共同成长吧。
喜欢的小伙伴记得点赞关注收藏哟,回看不迷路
? 欢迎大家转发、评论交流
蟹蟹
【js获取git分支信息】本文由mdnice多平台发布
推荐阅读
- Visual|VSCode中Vue3插件使用整理_Vue3开发插件
- #|vue使用 APlayer+Meting实现音乐播放,支持多平台音乐(网易云、腾讯、虾米、酷狗、百度)
- Web|Web学习(十一) Vue
- 面试|SpringBoot 整合Spring Security(简单版)
- 面试|SpringBoot 整合mybatis,mybatis-plus
- 产品功能|单点登录的三种实现方式
- 面试|3天精通nginx第二天-负载均衡upstream配置
- 面试|centos安装mysql8
- 面试|我的Go+语言初体验——Go+语言构建神经网络实战手写数字识别