Heim > Fragen und Antworten > Hauptteil
比如我在本地开发,push到了github,然后我得去服务器上git pull
有办法简化这个过程吗?github仓库一有push服务器就自动git pull.
用hooks? 怎么用呢,求教
巴扎黑2017-04-10 15:26:39
你意思就是自动部署吧,webhook的工作过程就是当你push的时候git发送webhook到你指定的服务器。
你可以自己写这个东西,当收到webhook请求,服务器自动执行git pull,但是自己写总数会出现各种问题,而且自己没必要浪费这个时间。
所以比较完美的解决方案就是使用一套自动部署系统。我推荐使用dploy.io,完全全自动,不用写一行代码。我代码托管用的coding,服务器用do,每次push自动部署,自动重启应用,棒极了。
PHP中文网2017-04-10 15:26:39
方法一:
定时任务 每隔一段时间pull一次
方法二:
服务器上搞一个web接口,调用时自动pull,然后在github上配置webhook,地址指定为这个接口的url
每当你push的时候,github会立即访问这个接口
阿神2017-04-10 15:26:39
主要包括创建git用户、建立git的bare仓库,以及相应的权限设定等,参考廖雪峰的git教程,以及这篇博客
到你建立的bare版仓库的hooks目录,添加post-receive
脚本,内容参考如下:
#!/bin/bash
unset GIT_DIR
cd /var/www/html/somesite
git pull
先把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