工欲善其事,必先利其器,首先您得准备有一台,linux服务器(物理机,云主机 均可)阅读本教程默认您已经有了基础的服务器常识
首先下载安装git
//使用yum安装yum install -y git//安装完后,查看Git版本git --version//可以看到版本号,标示安装成功创建git用户
useradd git // 创建git用户passwd git // 设置密码:回车之后输入创建git仓库
// 创建存放git仓库的文件夹mkdir -p /home/git/default.git// 初始化git init --bare /home/git/default.git// 把git仓库拥有者改为gitchown -R git:git /home/git/default.git/// 到此,服务器git仓库部署成功,现在我们就可以在本地客户端,git克隆服务器上git仓库来进行代码一定要注意/home的/,这个斜杠的意思是从服务器根部出发
在写一个博客的时候,特别是后期,频繁的上传代码到linux服务器,这让我感觉到效率很低下,于是我就在想能不能把git部署在我自己的服务器内,等提交完毕之后自动检出到web服务中。。。。。于是我打开了百度发现git hooks中的确有这么一个钩子文件post-receive
接下来我们进入正题,我们今天的目的就是,在git push 提交代码的时候,把指定分支的代码全自动部署到web服务中,实现所谓的全自动部署
首先我们找到钩子文件的所在
cd /home/git/default.git/hooks vi post-receive // 编辑钩子文件,默认无此文件,vi会自动创建,按i开始编辑,esc退出编辑,输入:wq保存退出// 把以下代码黏贴进post-receive DIR=/www/public/wx 这是目录自己设置
# 指定我的代码检出目录DIR=/www/public/wxgit --work-tree=${DIR} clean -fd# 直接强制检出git --work-tree=${DIR} checkout --force本教程到这里基本就结束了,确保您所写入的文件夹有足够的权限,如果想直接一点,那就777吧
本教程实现方法均来自网络,本人只是整理+总结,如果有不明白的地方可以加本人QQ:2762936900大家一起探讨