搭建gitserver并实现git push 自动部署

git push自动部署能大大提交开发部署效率

git 自动部署分为2类,

  1. git server和部署不在同一个服务器上(比如通过github部署)
  2. git server和要部署的目录在同一个服务器上。

这里记录第2种情况,说明如何实现在远程服务器上搭建git server并实现git push自动部署。

0. 整体框架

我这里服务器的IP为 192.168.1.123, 工作流程如下:

  1. 在本地PC 的/home/my/website上开发,
  2. 开发完成后push到服务器上的git仓库/home/git/website.git
  3. git自动部署website到/home/www/website

1. 搭建gitserver

1.1 首先在服务器上创建一个git用户,用于管理gitserver

根据提示完成信息确认就创建成功了(注意使用adduser,不要使用useradd)

server$  sudo adduser git

这样创建的用户每次push都要输入密码,如果不想每次push都手动输入密码,那请参考 ubuntu服务器新建用户,并且免密码ssh登陆

注:如果部署的路径在别的用户(比如www)目录下,将git用户加入到www组

server$  sudo adduser git www

1.2 创建website.git

server$  cd /home/git
server$  git init --bare website.git

1.3 给website.git创建

server$  vi /home/git/website.git/hooks/post-receive

将下面的内容复制到post-receive文件中

#!/bin/sh
# 这就是一个普通的shell脚本,通过push触发执行

# echo的输出会显示在git push 的回显中
echo '======代码上传到服务器======'

# 进入要部署的目录, git用户进入www用户的目录操作,所以git用户要和www用户同组
cd /home/www/website

# 这个很重要,如果不取消的话将不能在cd的路径上进行git操作
unset GIT_DIR

# 通过git reset --hard 的方式部署,适应性更强
git fetch origin
git reset --hard origin/master

# 当然你可以做其他的事情

echo '========自动部署完成========'

给post-receive增加可执行权限

server$  chmod 777 /home/git/website.git/hooks/post-receive

2. 完成并测试

已经完成了gitserver的搭建,现在我们需要将website.git仓库clone 到服务器的 /home/www/website 和本地/home/my/website

clone 到/home/www/website

server$ cd /home/www
server$ git clone /home/git/website.git  

clone到本地 (如果未配置)

PC$ cd /home/my/
PC$ git clone git@192.168.1.123:/home/git/website.git 

测试

PC$ cd /home/my/website
PC$ touch readme.txt
PC$ git add readme.txt
PC$ git commit -m"add readme.txt"
PC$ git push

如果显示类似log表示已经可以正常工作了

remote: ======代码上传到服务器======
remote:  * branch            master     -> FETCH_HEAD
remote:    26a9fcd..73709e9  master     -> origin/master
remote: 更新 26a9fcd..73709e9
remote: Fast-forward
remote:  readme.txt | 0
remote:  1 file changed, 0 insertions(+), 0 deletions(-)
remote:  create mode 100644 readme.txt
remote: ========自动部署完成========

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值