git - 无法从 Git 接收后 Hook 中检测到分支

标签 git hook git-post-receive

我在远程仓库上设置了一个 post receive hook setup,它试图确定传入推送的分支名称,如下所示:

$branch = `git rev-parse --abbrev-ref HEAD`

不过,我发现无论我从 $branch 变量中推送哪个分支,都会设置为“master”。

有什么想法吗?

最佳答案

post-receive hook 获取与 pre-receive 相同的数据,但不是作为参数,而是来自标准输入。为所有引用发送以下内容:

oldRev(空格)newRev(空格)refName(换行)

您可以使用此 bash 脚本解析出 ref 名称:

while read oldrev newrev ref
do
    echo "$ref"
done

关于git - 无法从 Git 接收后 Hook 中检测到分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5973795/

相关文章:

git - Git 是否可以永久在同一个子分支上工作?

git - 如何使用 git 和链 git config user.name 进行克隆

git - 禁用单个 git 命令的钩子(Hook)

git - 在推送通知邮件中添加 git diff

bash - 为什么 git diff-tree 的输出在我的 post-receive hook 中是空的?

linux - 如何从我的 Linux 机器上完全卸载 git

ios - linphone 编译问题(刚从 git 下载)

php - 在 Woocommerce 的订单支付页面上询问并保存账单信息

ruby - 无法从 Cucumber 2.3.2 中的 scene.file 获取场景的文件名

json - GitLab 5.2 后接收 WebHook