git服务器的钩子如何获取git客户端的提交信息
怪我咯
怪我咯 2017-05-17 10:03:16
[Git讨论组]

git服务器端的hooks有三个

pre-receive: 推送接受前
update: 推送更新中
post-receive: 推送接受后

我想在post-receive中执行一个脚本,需要知道客户端推送的时候推送的分支名。但是查阅不少资料
都没有提到hooks脚本如何获取客户端推送信息的方法。

比如git客户端a向git服务器b推送了分支hotfix1.2.3的一些更新,我想在git服务器b的hooks里根据这次推送行为的分支名,也就是hotfix1.2.3,执行某个脚本。如何做到呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
PHPz

根据Server-side Hooks这个链接的内容,可以知道post-receive和pre-receive一样在执行前会得到3个参数:
<old-value> <new-value> <ref-name>

The script takes no parameters, but each ref that is being pushed is passed to the script on a separate line on standard input in the following format:
<old-value> <new-value> <ref-name>

b6b36c697eb2d24302f89aa22d9170dfe609855b 85baa88c22b52ddd24d71f05db31f4e46d579095 refs/heads/master

所以既然知道了ref-name和相应的hash值,就可以根据git相应的命令得到对应的信息.如git log refs/heads/master.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号