git hook实现代码自动部署
来源:互联网 发布:北京阿里云招聘 编辑:程序博客网 时间:2024/05/18 01:55
原理与流程
- git用户执行
git push
操作 - 远程仓库发现有用户执行了push操作,就会执行一个脚本
post-receive
(钩子) - 在
post-receive
脚本中,将git仓库的代码拷贝到web站点目录下
创建git仓库
我们可以在自己的服务器上创建git仓库,有两种方式:
git --bare init
(裸仓库)git init
两者区别:
- 普通git仓库的目录结构就和你的代码目录结构一致,只多了
.git
目录,.git
目录中包含了git的一些配置等数据 - 裸仓库只保存了一些配置信息等,肉眼是找不到我们所上传的代码的
建议使用裸仓库
执行钩子
git仓库和git裸仓库的钩子所在位置不同。
- git普通仓库钩子在
.git/hooks/
中 - git裸仓库钩子在
hooks/
中
钩子要做的事就是将代码从仓库中拷贝到web目录,有两种方式:
- 在web目录中,将git仓库的代码克隆过来:
git clone xxxxx
,需要部署代码的时候,执行git pull即可将代码同步过来了。 - 将git仓库中的代码打包,然后解压到web目录下
实现:
第一种方式实现:
在上述hooks目录中,创建post-receive
文件,内容如下
#!/bin/shDEPLOY_PATH=/home/wwwroot/default/myproject/unset GIT_DIR #这条命令很重要cd $DEPLOY_PATHgit reset --hardgit pullchown www:www -R $DEPLOY_PATH
第二种方式实现:
#!/bin/shDEPLOY_PATH=/home/wwwroot/default/myproject/git archive --format zip --output /path/to/file.zip master # 将 master 以zip格式打包到指定文件(裸仓库中执行)mv /path/to/file.zip $DEPLOY_PATH #将打包好的剪切到web目录unset GIT_DIRcd $DEPLOY_PATHunzip -o file.zip #解压覆盖rm -rf file.zip #删除chown www:www -R $DEPLOY_PATH
- 注意:要给钩子脚本执行的权限
1 0
- git hook实现代码自动部署
- 185 git 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- git hook远程仓库实现网站的自动部署
- GIT服务器实现web代码自动部署
- GIT服务器实现web代码自动部署
- GIT 代码自动部署
- 203 git hook 一次自动部署实践
- git码云配置web hook钩子实现自动部署,git权限等问题,LAMP
- 搭建内部开发git服务器并使用hook实现自动部署
- 利用WebHook实现PHP自动部署Git代码
- (git)Bitbucket使用WebHook实现自动部署PHP代码
- git webhook 代码自动部署
- Git服务器端代码自动部署
- 搭建git服务器及利用git hook自动布署代码
- GIT实现自动拉取代码(可实现自动部署)
- git and maven 代码自动部署脚本
- KMP
- 计蒜客 无脑博士 bfs
- matlab极限导数积分初步
- jvm内存调优及原理的学习笔记
- 好好学习数据结构
- git hook实现代码自动部署
- hadoop hive基本操作
- DHCP基础
- 三道算法题
- 原生JS经典射击游戏-小蜜蜂
- WWW服务器的安装与配置
- 解决python问题:IndentationError :1. notepad++ 显示行号 2.tab自动转化为空格符
- linux centos7设置图形界面切换文本界面
- python列表详细讲解