git钩子放服务器_git服务器搭建post-receive 钩子部署服务端代码

今天突然想起要做一个功能, 本地GIT push的时候,服务器端的代码自动更新,不用再做多余的操作。来看下步骤:

环境已有内容: git用户,/home/git目录,和一个已经有的仓库/home/data/git/test.git,git 用户名zhanglong,git的Email:nice5good@126.com

1、使用git用户生成git密钥(把客户端的公钥(id_rsa.pb文件内容)添加到authorized_keys文件,git push,git pull 操作就不需要每次都输入密码了)

$ cd /home/git

$ mkdir .ssh

$ cd .ssh

$ touch authorized_keys //把用户端公钥加入authorized_keys文件

2、生成代码目录,并clone

$ cd /home/wwwroot

$ mkdir test

$ git clone /home/data/git/test.git

$ chown -R git:www test //test目录拥有设为git,所属组改为www(如果不知道git所属组, 使用【groups git 】来查看,可以用【usermod -g www git】来改变git所属组)

$ chmod 775 -R test

3、编写自动更新钩子

$ cd /home/git/test.git/hooks/

$ vim post-receive

#!/bin/bash

unset GIT_DIR

DIR_ONE=/home/wwwroot/default/yczx #此目录是项目目录

LogPath=/home/data/git/yczx.git/hooks #这是记录日志目录

echo -e "\n================= `date +"%Y-%m-%d %H:%M:%S"` ===============\n" >> $LogPath/gitSync.log

cd $DIR_ONE

git pull origin master >> $LogPath/gitSync.log 2>&1

echo "================================================" >> $LogPath/gitSync.log

4、给钩子文件添加执行权限

$ cd /home/data/git/test.git/hooks/

$ chmod +x post-receive //给钩子文件添加执行权限

以上步骤完成git服务器就已经搭建好了,下面来讲一下客户端的使用操作

1、首先生成客户端密钥,且把公钥复制到authorized_keys文件里

$ ssh-keygen -t rsa -C nice5good@126.com //生成密钥

$ cat /userdir/.ssh/id_rsa.pub // 把显示的内容复制到服务端的/home/git/.ssh/authorized_keys文件里

然后把git仓库拷贝下来

$ git clone git@123.456.78.9/home/data/git/test.git

测试操作(git push完成后git自动对web目录做git pull操作)

$ cd test

$ git pull origin master

$ touch test.txt

$ git add .

$ git commit -m'test'

$ git push origin master

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值