git使用hooks自动部署

需求模型:

1、服务端有个git 仓库

2、本地有个git仓库

3、当本地提交代码的时候,服务端的web目录会启动拉取git仓库的代码

一、首先在服务端创建一个git仓库:

cd  /home/git/rep/
mkdir  test.git
cd test.git
#初始化服务端git仓库
git init --bare
#如果计划使用http,则需要加一下代码:
git update-server-info

二、将本地代码推送到服务端

cd /home/project/webPro
#初始化本地仓库
git init 
git add *
git commit -m "first commit"
git remote add origin git@example.com:/home/git/rep/test.git
git push -u origin master

  

三、配置git  hooks,让代码自动部署

进入/home/git/rep/test.git/hooks;将post-receive.sample该为post-receive(有的版本为post-update.example),如:

cd /home/git/rep/test.git/hooks
cp post-update.sample  post-update

  

编辑post-update文件:

#!/bin/sh

#一定要加这一行,否则会报:“fatal: not a git repository: '.'”错误
unset GIT_DIR

NowPath=`pwd`
projectPath="/var/www/web"

cd $projectPath

git pull origin master
cd $NowPath

exit 0

 

到此配置完成,只要在客户端push了代码,就会自动部署到/var/www/web目录

 

posted @ 2018-09-21 09:56  远洪  阅读(497)  评论(0)    收藏  举报