【问题标题】:git post-receive hook in phpphp中的git post-receive钩子
【发布时间】:2012-02-17 08:44:43
【问题描述】:

我希望能够在 post-receive 钩子上执行一个 php 钩子,将文件从 git repo 复制到同一服务器上的 web 文件夹,并且只有在它被推送到忽略其他分支的主分支上时才运行。以下是我到目前为止所得到的。

!/usr/bin/php
<?php

exec("git archive master | tar -x -C /var/www/", $output);

?>

基本上,我不确定如何使用 php 访问 git 参数。

【问题讨论】:

  • +1 因为 git 很棒,我不想研究细节。希望其他人能尽快解决这个问题,我们都可以变得更聪明:)
  • a) 获取你选择的 git 库 b) 学习一些 bash
  • 好的。如果对您来说都一样,我想使用 php。
  • 我不确定的一点是访问参数,所以我可以忽略除 master 之外的所有分支。
  • 查看手册页或其他地方传递给钩子的参数,使用 $argv[] 访问它们。

标签: php git githooks


【解决方案1】:

不要忘记接收后挂钩 doesn't take arguments:它会读取标准输入上的数据。

“接收后”脚本在接收包接受包并且存储库已更新后运行。它通过标准输入以如下形式传递参数:

<oldrev> <newrev> <refname>

因此,您需要阅读extract the branch 的上述参数(示例是 bash,但您可以调整它)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-05-13
  • 2014-10-28
  • 1970-01-01
  • 2011-04-15
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多