搭建gitserver并实现git push 自动部署
发布日期:2021-06-29 02:32:00 浏览次数:2 分类:技术文章

本文共 1840 字,大约阅读时间需要 6 分钟。

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都手动输入密码,那请参考

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

server$  sudo adduser git www

1.2 创建website.git

server$  cd /home/gitserver$  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 origingit 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/wwwserver$ 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/websitePC$ touch readme.txtPC$ git add readme.txtPC$ git commit -m"add readme.txt"PC$ git push

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

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

 

转载地址:https://blog.csdn.net/yyyyyyyyyywwwwwwwwww/article/details/108002358 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:git常用操作及原理--本地
下一篇:ubuntu服务器新建用户,并且免密码ssh登陆

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月23日 21时04分59秒