搭建gitserver并实现git push 自动部署
发布日期:2021-06-29 02:32:00
浏览次数:2
分类:技术文章
本文共 1840 字,大约阅读时间需要 6 分钟。
git push自动部署能大大提交开发部署效率
git 自动部署分为2类,
- git server和部署不在同一个服务器上(比如通过github部署)
- git server和要部署的目录在同一个服务器上。
这里记录第2种情况,说明如何实现在远程服务器上搭建git server并实现git push自动部署。
0. 整体框架
我这里服务器的IP为 192.168.1.123, 工作流程如下:
- 在本地PC 的/home/my/website上开发,
- 开发完成后push到服务器上的git仓库/home/git/website.git
- 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月23日 21时04分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
AJAX_ Asynchronous JavaScript and XML
2019-04-29
Vue_基本入门
2019-04-29
Java(1)
2019-04-29
Java(2)
2019-04-29
Java(3)
2019-04-29
react使用antd警告:Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance
2019-04-29
react 使用router 和 ts 进行页面跳转报错
2019-04-29
更改vue项目的浏览器图标与标头
2019-04-29
HTML5之Validation Plugin表单插件使用(仅供参考)
2019-04-29
HTML5简单轮播的实现(使用JQuery)
2019-04-29
MongoDB数据库安装
2019-04-29
MongoDB数据库安装完成之后的配置
2019-04-29
Mongo数据库使用
2019-04-29
弹性布局做导航
2019-04-29
使用setTimeout()实现setInterval()功能
2019-04-29
jQuery鼠标经过显示二级导航菜单(用less写的)
2019-04-29
canvas刮涂层抽奖
2019-04-29
axios接收后台图片二进制流显示到前端
2019-04-29
iView3.0样式显示问题(Select和DatePicker)
2019-04-29