共计 1472 个字符,预计需要花费 4 分钟才能阅读完成。
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
文件中的内容
HEAD 指向最新放入仓库的版本
ref: refs/heads/dev_0922
- 编写脚本
#!/bin/bash
# 获取以后分支
line=$(head -n +1 .git/HEAD)
branch=${line##*/}
echo $branch # dev_0922
🎈🎈🎈
🌹 关注我,你会发现一个虚浮致力的宝藏前端😊,让咱们一起学习,独特成长吧。
🎉 喜爱的小伙伴记得点赞关注珍藏哟,回看不迷路 😉
✨ 欢送大家转发、评论交换
🎁 蟹蟹😊
本文由 mdnice 多平台公布
正文完