git - GIT: post-receive -> 获取推送的分支名
问题描述
我想获取正在推送到我的遥控器的分支的名称。例如:当我将本地分支推feature/awesome
送到f5/master
(f5
是我的测试服务器)时,我想feature/awesome
在我的 post-receive 挂钩中获取字符串。
我已经在 SO 的帮助下完成了获取收到推送的分支的名称:
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
echo "$oldrev" > last.txt # a hash
echo "$newrev" >> last.txt # a hash
echo "$refname" >> last.txt # refs/heads/master
echo "$branch" >> last.txt # master
done
我的目标是将信息发送到正在将其写入数据库的服务,然后创建有关当前将哪些功能推送到哪个测试服务器的概述。
但我正在努力获取推送的功能名称。有谁知道这是否可能以及我如何实现这一目标?
另一种解决方案是将本地分支直接推送到测试服务器,而不是将其推送到主分支。我想避免这种情况在我的服务器上只有一个分支。
解决方案
在推送中并不总是需要本地参考。如果feature/awesome
点在 commit abc123
, git push origin feature/awesome:master
和git push origin abc123:master
是相同的。
如果您对本地分支有严格的命名规则和推送的常规工作流程,您可以尝试-o/--push-option , git push origin --push-option=feature/awesome feature/awesome:master
. 在post-receivefeature/awesome
中,您可以从 env 变量中获取字符串GIT_PUSH_OPTION_0
。您需要检查您的 Git 版本是否支持此功能。
推荐阅读
- javascript - 从回调函数返回一个值
- angular - 在显示 toast 消息之前,如何确保我的所有 observables 都已完成?
- python - Pandas:将 Dataframe 上三角转换为下三角,反之亦然
- c# - Nest 5.6 - 如何插入已存在 id 的文档?
- python - 使用 django 上下文数据填充 bootbox.js 提示
- html - & 和 %26 的替代品
- scala - 仅保留最新消息的节流 akka-actor
- python - 了解python元组列出性能优化
- string - SAS-如何在while循环期间将2个数值连接到变量名上
- java - 单独使用 @Entity 休眠 @OneToOne