php项目github自动pull到服务器

项目名:web

一、自动触发

1、在服务器添加脚本文件gitpull.sh

#!/bin/sh
cd /www/web
git reset --hard origin/master
git clean -f
git pull 2>&1
git checkout master # 注:若脚本文件路径不在www用户组的路径下,需要在www对应用户组路径下添加脚本文件
# 查看用户组路径(找到对应用户组即可):cat /etc/passwd

2、创建脚本(gitpull.sh)回调接口:www.web.com/git-hook

<?php
exec('sh ~/gitpull.sh 2>&1', $a, $b);
//print_r($a); # 若不能正常拉取,可开启答应查看错误信息
//echo PHP_EOL;
//print_r($b);
# 注:接口名称自定义,exec执行脚本路径根据实际路径而定

3、在github项目中添加回调路径

web > Settings > Webhooks > add webhook

  • Payload URL:(填写回调地址:www.test.com/git-hook)
  • Content type:(若不需要记录git操作信息可不管)
  • Which events would you like to trigger this webhook?(建议选择:Just the push event.)
  • Active:(默认选择)

其它:

  • 需要www用户组对脚本文件的操作权限

  • 需要www用户组对web有读写权限

  • .git/FETCH_HEAD也需要给与相应的权限

  • .git/config文件中url需要带上用户名及密码,否则拉取会报错

    [remote "origin"]
    url = https://{username}:{password}@github.com/{username}/web.git
  • 确认脚本文件gitpull.sh文件格式

    vim gitpull.sh
    :set ff
    :set ff=unix
    :wq
    # 注:若执行命令:set ff左下角显示fileformat=unix,则说明格式正常,不需要后续操作,直接退出即可

二、主动触发

1、创建脚本文件(同上)

2、在服务器中添加定时任务,每分钟执行

注:服务器相应目录创建脚本:touch gitpull.sh

最新文章

  1. angular代码分析之异常日志设计
  2. iTunes.exe 在win7系统中运行出错解决办法
  3. hasOwnProperty,in
  4. Angular SEO方案
  5. 命令别名alias设置
  6. C++Primer 第十二章
  7. (PowerShell) Managing Windows Registry
  8. web前端—工作周报
  9. Entity Framework 5.0
  10. spm使用之二兼谈spm的贱格
  11. sql语句读取所有父子标签
  12. Event Sourcing - ENode(二)
  13. jmeter+ant+jenkins+mac 构建后自动发送邮件
  14. MongoDB学习笔记(三)
  15. scrapy爬取数据保存csv、mysql、mongodb、json
  16. angr进阶(4)从任意位置开始
  17. ElasticSearch日常使用脚本
  18. linux内存源码分析 - 内存池
  19. ie-table不显示边框解决办法
  20. Delphi7 中文汉字转网址格式 Utf8编码转换(淘宝搜索中文转网址)

热门文章

  1. 工作流(workflow)
  2. WinRM服务远程命令执行
  3. Windows/Linux 下反弹shell
  4. ci爬坑
  5. CorelDRAW 里面如何将文字调整成半透明的颜色
  6. 浅析Nginx与Apache的区别
  7. 将input 的文本框改为不可编辑状态
  8. JQuery案例:购物车编辑
  9. 路由器/交换机Console口登录密码丢失后如何恢复
  10. Alpha冲刺——代码规范,冲刺计划