찾다

 >  Q&A  >  본문

php - github钩子怎么设置 有push服务器自动pull?

比如我在本地开发,push到了github,然后我得去服务器上git pull

有办法简化这个过程吗?github仓库一有push服务器就自动git pull.

用hooks? 怎么用呢,求教

大家讲道理大家讲道理2895일 전403

모든 응답(4)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-04-10 15:26:39

    你意思就是自动部署吧,webhook的工作过程就是当你push的时候git发送webhook到你指定的服务器。

    你可以自己写这个东西,当收到webhook请求,服务器自动执行git pull,但是自己写总数会出现各种问题,而且自己没必要浪费这个时间。

    所以比较完美的解决方案就是使用一套自动部署系统。我推荐使用dploy.io,完全全自动,不用写一行代码。我代码托管用的coding,服务器用do,每次push自动部署,自动重启应用,棒极了。

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-10 15:26:39

    方法一:

    定时任务 每隔一段时间pull一次

    方法二:

    服务器上搞一个web接口,调用时自动pull,然后在github上配置webhook,地址指定为这个接口的url

    每当你push的时候,github会立即访问这个接口

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-10 15:26:39

    玩转git之webhook应用初探

    회신하다
    0
  • 阿神

    阿神2017-04-10 15:26:39

    1.搭建git服务器

    主要包括创建git用户、建立git的bare仓库,以及相应的权限设定等,参考廖雪峰的git教程,以及这篇博客

    2.配置钩子(hook脚本)

    到你建立的bare版仓库的hooks目录,添加post-receive脚本,内容参考如下:

    #!/bin/bash
    unset GIT_DIR
    cd /var/www/html/somesite
    git pull

    3.配置权限

    先把git repo克隆到目标位置,e.g.

    cd /var/www/html/somesite
    git clone /srv/myrepo.git .

    并配置权限为:

    chown -R git:apache /var/www/html/somesite
    chown -R git:git /var/www/html/somesite/.git

    회신하다
    0
  • 취소회신하다