美文网首页
js获取git分支信息

js获取git分支信息

作者: 甜点cc | 来源:发表于2022-08-03 15:44 被阅读0次

1、git bash 获取分支信息

# 获取当前分支名
git rev-parse --abbrev-ref HEAD
git branch --show-current

# 获取当前hash
git rev-parse HEAD
git rev-parse --short HEAD  # 短的

上面的代码是通过git命令获取的分支信息,怎么可以在项目代码里面获取分支信息呢?请看下文👇

2、JavaScript 通过 execa 插件获取项目分支信息

execa具备如下特点:

  • Promise接口
  • 从输出中删除最后的换行符,这样您就不必执行stdout.trim()
  • 支持跨平台的shebang二进制文件
  • 改进Windows支持。
  • 更高的最大缓冲区。100mb而不是200kb。
  • 按名称执行本地安装的二进制文件。
  • 在父进程终止时清除派生的进程。
  • 从 stdout和stderr获得交错输出,类似于在终端上打印的输出。(异步)
  • 可以指定文件和参数作为一个单一的字符串没有外壳
  • 更具描述性的错误。
  1. 安装 execa
npm install execa -S
  1. 简单使用 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还可以执行脚本命令,并输出结果,下面看一下如何在代码里面获取当前操作的分支👇

  1. 实际项目中的代码
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
}

下面说一下脚本获取方式

3、脚本获取

我在掘金 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

🎈🎈🎈

🌹 关注我,你会发现一个踏实努力的宝藏前端😊,让我们一起学习,共同成长吧。

🎉 喜欢的小伙伴记得点赞关注收藏哟,回看不迷路 😉

✨ 欢迎大家转发、评论交流

🎁 蟹蟹😊

相关文章

  • js获取git分支信息

    1、git bash 获取分支信息 上面的代码是通过git命令获取的分支信息,怎么可以在项目代码里面获取分支信息呢...

  • 2018-03-01git分支管理

    git pull 只是拉取当前分支的代码(其他分支信息或者新建分支信息获取不到) git fetch 获取远程仓库...

  • git获取远程分支信息

    如果使用git检出一个项目之后没有master分支以外的分支,使用 git fetch 就可以获取到别的分支的信息...

  • GIT获取远程分支

    通过Gitclone获取的远端git库,只包含了远端git库的当前工作分支。 如果想获取其它分支信息,需要使用”g...

  • 【Git学习笔记1】从 git clone 和 git stat

    git clone 和 git status git clone 获取远程仓库,将远端的代码以及相关分支信息cl...

  • git 常用操作

    拉代码 获取远程信息 更新代码 分支 切分支 代码拉下来后默认是在master分支, 需要用 git checko...

  • git获取远程分支

    git clone url默认获取的是master分支,如何获取远程分支呢?使用下面命令: git branch ...

  • git之rebase

    rebase的两大用处: 从上游分支获取最新commit信息,并有机的将当前分支和上游分支进行合并。git reb...

  • 版本控制工具篇——Git常用命令

    克隆分支git clone xxx 查看所有分支信息git branch -av 同步远程分支git remote...

  • git 使用总结

    fetch; 用来获取远程分支的更新;git fetch将获取所有分支的更新,git fetch <远程主机名>或...

网友评论

      本文标题:js获取git分支信息

      本文链接:https://www.haomeiwen.com/subject/azzswrtx.html