起因: 经常本地push到gitee等线上代码仓库,然后登陆服务器在进行pull,很麻烦,想偷懒怎么办?使用git的webhook实现!

1.实现原理

  1.1本地提交推送

  1.2线上仓库监听push动作,也就是webhook,回调url触发服务器的pull操作

  1.3服务器pull操作

2.实现步骤

  2.1本地和服务器安装git(略过)

  2.2码云进入项目->管理->webhook设置,(其他原理一样 git,coding)

  url就是你服务器上可以访问的地址, 该地址是进行pull命令的文件,可以是php,python,node等等等,勾选push就是当push动作的时候触发这个url,访问服务器进行pull操作,勾选其他的就是其他的动作,这里不做解释. 添加后,会有测试按钮,建议代码写上测试一下

 shell_exec('ls')

  如果返回文件目录,则表示该权限可以执行,服务器是LNMP, 然后只需要一行代码(我的需求就是自动拉取,所有不做深入的操作,比如验证,日志,分类什么的可以自己补充)通过代码可以查看回调的信息,根据信息进行操作

$request = json_decode(file_get_contents('php://input'), true)

  拉取动作

echo shell_exec('cd your_path && git pull')

3.一些坑

  如果不成功,建议 LL 命令查看一下用户权限 一般PHP是www-data用户, 使用

sudo chown -R :www-data your_path
sudo chmod -R g+w your_path

  主要是权限问题,这样应该可以啦! 路由什么的自己去搞定啦! 接下来就可以开心的本地push服务器自己去pull啦~哈哈哈

Git----使用WebHook实现代码自动部署的更多相关文章

  1. GIT服务器实现web代码自动部署

    之前在一台vps服务器上面搭建了Git服务器,用来做代码管理,方便团队开发.但是问题也就相应的来了,使用git可以轻松的上传代码,而由于做的是web开发,每次还都得到服务器上把代码手动pull或者复制 ...

  2. github webhook 实现代码自动部署 踩坑!! 附加git&coding webhook部署代码

    踩坑: 1.php程序执行linux命令是以webserver的user用户(如apache .www……)操作的,需要在/etc/sudoers添加用户免密码操作权限; %apache ALL=(A ...

  3. 做了一个简易的git 代码自动部署脚本

    做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08)   阅读(200 ...

  4. Java代码自动部署

    注:本文来源于<it小熊> [ ①Java代码自动部署-总结简介] 代码部署是每一个软件开发项目组都会有的一个流程,也是从开发环节到发布功能必不可少的环节.对于Java开发者来说,Java ...

  5. 利用WebHook实现PHP自动部署Git代码

    平时项目代码都托管在Coding,然后每次提交了代码之后都要SSH到服务器上去git pull一次,很是繁琐,在看了OverTrue的<使用PHP脚本远程部署git项目>后就尝试在自己服务 ...

  6. git的安装使用和代码自动部署

    1.安装 http://www.cnblogs.com/sunada2005/archive/2013/06/06/3121098.html http://www.cnblogs.com/zhcncn ...

  7. centos 安装git服务器,配置使用证书登录并你用hook实现代码自动部署

    安装git服务器先安装依赖软件:yum -y install gcc zlib-devel openssl-devel perl cpio expat-devel gettext-devel open ...

  8. Jenkins+Gitlab配置Webhook实现提交自动部署

    一.概述 在上一篇文章,链接如下: https://www.cnblogs.com/xiao987334176/p/11434849.html 已经实现了 Jenkins+harbor+gitlab+ ...

  9. 使用gitlab的webhook进行前端自动部署

    gitlab有个功能叫webhook,比较适合前端代码的自动部署.其中的逻辑在  http://172.30.83.152:30080/help/user/project/integrations/w ...

随机推荐

  1. join......on 后面的and 和where的区别

    a.where 是在两个表join完成后,再附上where条件. b. and 则是在表连接前过滤A表或B表里面哪些记录符合连接条件,同时会兼顾是left join还是right join.即 假如是 ...

  2. SharePoint 2013 - Designer Workflow

    另一篇文章 SharePoint Designer - Workflow 1. 可以定义每个Stage的名称,并将Stage名称显示在工作流状态字段,相比于SP2010时仅有的in progress ...

  3. eclipse spring boot项目部署

    选中项目------>右键----->Run As------>Manven bulid-->填写Name:XXX; Goals:clean package -Dmaven.t ...

  4. 【2015 Week Task】

    2015 第17周 task:项目语音识别技术整理 2015 第18周 task:项目key技术整理

  5. GridCellChoiceEditor

    choice_editor = wx.grid.GridCellChoiceEditor(choices_list, True) grid.SetCellEditor(row, col, choice ...

  6. SQL转Linq工具的使用——Linqer

    官方下载网站:http://www.sqltolinq.com/ 本文介绍版本为Linqer 4.5.7 第一步:下载下来,解压,双击安装.exe文件,运行界面如下. 第二步:建立与数据库的连接 点击 ...

  7. elasticsearch 概念

    elasticsearch 来源:https://baike.baidu.com/item/elasticsearch/3411206?fr=aladdin ElasticSearch是一个基于Luc ...

  8. Jerry的Fiori原创文章合集

    我曾经于2014年10月到2016年5月工作于SAP CRM Fiori应用的开发团队, 我所在的团队负责下列这8个Fiori应用的维护和持续开发: My Opportunities My Tasks ...

  9. LA 3126 出租车

    题目链接:https://vjudge.net/problem/UVALive-3126 题意:有m个客人,位于不同的位置,去一些地方,出发的时间给出,要一些出租车去接,但是,每辆出租车要在出发前一分 ...

  10. 【题解】POJ 2115 C Looooops (Exgcd)

    POJ 2115:http://poj.org/problem?id=2115 思路 设循环T次 则要满足A≡(B+CT)(mod 2k) 可得 A=B+CT+m*2k 移项得C*T+2k*m=B-A ...