gpt4 book ai didi

git - 编写一个 git post-receive hook 来处理特定的分支

转载 作者:IT王子 更新时间:2023-10-29 01:23:35 27 4
gpt4 key购买 nike

这是我目前在公司服务器中的裸仓库中的钩子(Hook):git push origin master这个钩子(Hook)推送到 Assembla。我需要的是当有人将更改推送到我们服务器上的那个分支时,只推送一个分支(理想情况下是主分支),而忽略对其他分支的推送。是否可以从裸仓库中选择分支并仅将该分支推送到 Assembla?

最佳答案

post-receive hook 从 stdin 获取它的参数,格式如下:

<oldrev> <newrev> <refname>

由于这些参数来自标准输入,而不是来自命令行参数,因此您需要使用 read 而不是 $1 $2 $3

post-receive hook 可以一次接收多个分支(例如,如果有人执行 git push --all),所以我们还需要包装 readwhile 循环中。

一个工作片段看起来像这样:

#!/bin/bash
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [ "master" = "$branch" ]; then
# Do something
fi
done

关于git - 编写一个 git post-receive hook 来处理特定的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7351551/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com