git服务器实现自动部署代码

广告也精彩

一简介自动化可以解放人类的双手,更重要的是,因为按照规定的流程,也减少了很多误操作的发生。不知道大家平时是怎么更新自己生产环境的代码的。FTP覆盖旧文件,服务器定期任务去build最新源代码,还是有更高级的做法?目前,我正在使用GitHook来部署我的项目。GitHook是Git提供的钩子,可以在特定事件触发后调用。事实上,更流行的是,当你设置GitHook时,GitHook可以帮助你在远程仓库收到push后执行bash脚本。二逻辑根据上述说法,开发人员提交时,应自动触发脚本,实现web端代码的部署。在这里,我们必须谈谈git的hook机制。当git服务器接收到各种事件时,这里使用的hook是post-receive。该hook在git服务器被push请求并接受代码提交时触发。具体代码反映,在git远端仓库hooks目录下新建post-receive文件:三代码#!/bin/sh。#判断是否是远端仓库。IS_BARE=$(gitrev-parse-is-bare-repository)if[-z“$IS_BARE”];then。echo>&2“fatal:post-receive:IS_NOT_BARE”exit1fiunsetGIT_DIR。“/var/web”DeployPathcd$。“deployingthetweb”#gitstash。#gitpulloriginmaster。gitfetch-all。gitreset-hardorigin/master。time=`date`。echo“webserverpullatwebserverattime:$time”chmod+xpost-receive。五备注由于我在建立git仓库时使用git用户,但在自动部署时,网站服务器使用nginx服务器的git用户属于git组nginx属于nginx组,因此这里将post-receine设置为nginx组。如果不设置,则无法在网站目录下更新文件(提示无权操作)

git服务器实现自动部署代码

 

转载于天翼云知识,如有侵权,请联系删除,谢谢

© 版权声明
广告也精彩

相关文章

广告也精彩

暂无评论

暂无评论...