git bash 获取分支信息

# 获取以后分支名git rev-parse --abbrev-ref HEADgit branch --show-current# 获取以后hashgit rev-parse HEADgit rev-parse --short HEAD  # 短的

下面的代码是通过git命令获取的分支信息,怎么能够在我的项目代码外面获取分支信息呢?请看下文

JavaScript 通过 execa 插件获取我的项目分支信息

execa具备如下特点:

  • Promise接口
  • 从输入中删除最初的换行符,这样您就不用执行stdout.trim()
  • 反对跨平台的shebang二进制文件
  • 改良Windows反对。
  • 更高的最大缓冲区。100mb而不是200kb。
  • 按名称执行本地装置的二进制文件。
  • 在父过程终止时革除派生的过程。
  • 从 stdout和stderr取得交织输入,相似于在终端上打印的输入。(异步)
  • 能够指定文件和参数作为一个繁多的字符串没有外壳
  • 更具描述性的谬误。
  1. 装置 execa

    npm install execa -S
  2. 简略应用 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还能够执行脚本命令,并输入后果,上面看一下如何在代码外面获取以后操作的分支

  3. 理论我的项目中的代码

    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 一文中应用脚本获取分支信息,感兴趣能够看一下。
  1. 能够看一下我的项目中 .git/HEAD 文件中的内容

HEAD指向最新放入仓库的版本

ref: refs/heads/dev_0922
  1. 编写脚本
#!/bin/bash# 获取以后分支line=$(head -n +1 .git/HEAD)branch=${line##*/}echo $branch # dev_0922

关注我,你会发现一个虚浮致力的宝藏前端,让咱们一起学习,独特成长吧。

喜爱的小伙伴记得点赞关注珍藏哟,回看不迷路

✨ 欢送大家转发、评论交换

蟹蟹

本文由mdnice多平台公布