# 获取当前分支名git rev-parse --abbrev-ref HEADgit branch --show-current# 获取当前hashgit rev-parse HEADgit rev-parse --short HEAD # 短的
在前端代码里面怎么获取当前操作的分支呢?
通过execa插件实现
- Promise接口
- 从输出中删除最后的换行符,这样您就不必执行stdout.trim()
- 支持跨平台的shebang二进制文件
- 改进Windows支持。
- 更高的最大缓冲区。100mb而不是200kb。
- 按名称执行本地安装的二进制文件。
- 在父进程终止时清除派生的进程。
- 从 stdout和stderr获得交错输出,类似于在终端上打印的输出。(异步)
- 可以指定文件和参数作为一个单一的字符串没有外壳
- 更具描述性的错误。 ```shell npm install execa -S
使用
const execs = require(‘execa’);
const execa = require(‘execa’);
(async () => { const {stdout} = await execa(‘echo’, [‘unicorns’]); console.log(stdout); //=> ‘unicorns’ })();
/{ command: ‘echo unicorns’, escapedCommand: ‘echo unicorns’, exitCode: 0, stdout: ‘“unicorns”‘, stderr: ‘’, all: undefined, failed: false, timedOut: false, isCanceled: false, killed: false }/
stdout 表示执行命令的输出结果
执行脚本
execa.node(scriptPath, arguments?, options?)
<a name="BRxXH"></a>## 了解了execa的简单使用之后,就可以在代码里面获取当前操作的分支了请看代码```shellfunction 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}
网上找到一段代码也可以实现,但是具体在项目里面怎么使用还需要学习 先贴出来代码,实际上就是执行命令方式的区别
function current_branch() {local folder="$(pwd)"[ -n "$1" ] && folder="$1"git -C "$folder" rev-parse --abbrev-ref HEAD | grep -v HEAD ||git -C "$folder" describe --exact-match HEAD ||git -C "$folder" rev-parse HEAD}
https://stackoverflow.com/questions/6245570/how-to-get-the-current-branch-name-in-git
脚本获取
# .git/HEAD 文件内容ref: refs/heads/dev_0922
编写脚本:
#!/bin/bash# 获取当前分支line=$(head -n +1 .git/HEAD)branch=${line##*/}echo $branch # dev_0922
