用于从 git ref 中提取分支名称的 Node.js 包
Posted
技术标签:
【中文标题】用于从 git ref 中提取分支名称的 Node.js 包【英文标题】:Node.js package for extracting branch name from git ref 【发布时间】:2021-11-09 00:43:42 【问题描述】:我在 GitHub Actions 上运行我的 CI,并使用 GITHUB_REF 默认环境变量作为下载 URL 的一部分。
GitHub 将GITHUB_REF
设置为:
refs/heads/staging
我从git: difference between "branchname" and "refs/heads/branchname" 了解到,需要refs/heads/
前缀,以便 git 拥有到分支的“完整路径”。
现在,我想知道是否有人知道部署到像 npmjs 这样的注册表的现成 node.js 包,我可以使用它从长引用字符串中提取分支名称?似乎可能有许多不同的前缀:refs/tags/
、refs/remotes
等,如果有其他可用的解决方案,我宁愿不编写自定义脚本。
【问题讨论】:
$(git rev-parse --abbrev-ref HEAD)
【参考方案1】:
感谢 Lawrence Cherone 的comment,我找到了这个GitHub gist:
const execSync = require('child_process');
function executeGitCommand(command)
return execSync(command)
.toString('utf8')
.replace(/[\n\r\s]+$/, '');
const BRANCH = executeGitCommand('git rev-parse --abbrev-ref HEAD');
const COMMIT_SHA = executeGitCommand('git rev-parse HEAD');
它不是一个 npm 包,但现在已经足够了。
【讨论】:
以上是关于用于从 git ref 中提取分支名称的 Node.js 包的主要内容,如果未能解决你的问题,请参考以下文章
使用“git pull”时,如何将 Git 配置为自动从当前分支中提取?