码云(gitee)通过git自动同步到阿里云服务器


Posted in Servers onDecember 24, 2022

当我们想要实现几个小伙伴合作开发同一个项目,或者建立一个资源分享平台的时候,GIT就是一个很好的选择。当然,既然是一个共有平台,那么把这个平台放到个人计算机上明显是不合适的,因此就要在服务器上搭建GIT了。另一个需求是,我们在本地开发,然后推送到服务器上,并且自动同步到web站点目录,这样就可以直接看到网页效果了,这就要实现自动同步。这篇文章主要介绍了码云(gitee)通过git自动同步到阿里云服务器

一.预先在码云(gitee)上新建项目

找到你的项目https的链接,保存一下

二.阿里云服务器上安装git

三.为了避免git pull时输入账号和密码,我们需要创建.git-credentials

1.先cd到当前用户目录

cd ~

2.然后创建.git-credentials文件

vi .git-credentials

3.写入如下数据,注意,用户名和密码替换上自己码云(gitee)的用户名和密码,当然,如果你同时存在可以一行一个,存在同一个文件

https://用户名:密码@gitee.com   //码云(gitee)的配置

4.接着运行如下命令,这里注意,如果你是第一次在服务器上使用git,那么你最好先运行git config配置一下你的用户,邮箱

git config --global user.name "用户名"
git config --global user.email 邮箱
git config --global credential.helper store

5.查看~/.gitconfig,会发现多一项

6.注意这里只是配置的当前用户,这里我们查看php-fpm运行的用户是www(大家或许会跟我不同),所以我们需要为www也配置.git-credentials

我们把.gitconfig和.git-credentials复制到/home/nginx下,并设置所属用户和组为nginx

cp ~/.gitconfig /home/nginx/
cp ~/.git-credentials /home/nginx/
cd /home/nginx
chown nginx.nginx.gitconfig
chown nginx.nginx.git-credentials

四.我们到阿里云服务器的项目目录git clone项目代码(第一步中的项目地址)

cd /data/www/
git clone https://gitee.com/guixianfeng/test.git
**(码云 添加了公钥还不能git clone 代码点看自己的项目—>管理->是否开源)**

五.由于我们是通过php脚本执行git pull所以,需要给www用户读写test目录的权限

chown -R nginx:nginx /data/www/test
chmod -R g+w /data/www/test

六.拉取代码脚本

接着我们在服务器/data/wwwroot/test项目入口出新建一个webhooks.php, 拉取代码脚本,注意该脚本一定能外网访问, 这里我的为test项目解析了一个http://tp.kinggui.com的域名

//本地路径
$local = '/data/www/test';
//仓库地址
$remote = 'https://gitee.com/guixianfeng/test.git';
  
//密码
$password = '123456';
  
//获取请求参数
$request = file_get_contents('php://input');
if (empty($request)) {
    die('request is empty');
}
  
//验证密码是否正确
$data = json_decode($request, true);
if ($data['password'] != $password) {
    die('password is error');
}
  
echo shell_exec("cd {$local} && git pull {$remote} 2>&1");
die('done ' . date('Y-m-d H:i:s', time()));

此处有点要注意,git pull代码处,我在服务器上/data/wwwroot/test可以手动git pull拉下代码,但是远程访问webhooks.php脚本时,提示git: command not found,那么此处倒数第二行代码可以改为如下:

echo shell_exec("cd {$local} && /usr/local/git/bin/git pull {$remote} 2>&1");

这里/usr/local/git为我git的安装目录,大家的安装目录写成各自对应的目录即可

七、配置gitee的webhooks

码云(gitee)通过git自动同步到阿里云服务器

八、同步拉取代码

最后我们只要git push代码,gitee就会同步触发webhooks设置的脚本,进行同步拉取代码。

到此这篇关于码云(gitee)通过git自动同步到阿里云服务器的文章就介绍到这了,更多相关码云git到服务器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx常用命令放入shell脚本详解
Mar 31 Servers
Nginx优化服务之网页压缩的实现方法
Mar 31 Servers
Nginx下SSL证书安装部署步骤介绍
Dec 06 Servers
教你使用Jenkins集成Harbor自动发布镜像
Apr 03 Servers
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
Apr 07 Servers
Docker下安装Oracle19c
Apr 13 Servers
微信告警的zabbix监控系统 监控整个NGINX集群
Apr 18 Servers
Nginx 安装SSL证书完成HTTPS部署
Apr 28 Servers
nginx 添加http_stub_status_module模块
May 25 Servers
Windows10安装Apache2.4的方法步骤
Jun 25 Servers
在虚拟机中安装windows server 2008的图文教程
Jun 28 Servers
Windows server 2003卸载和安装IIS的图文教程
Jul 15 Servers
Valheim服务器 Mod修改安装教程 【ValheimPlus】
Dec 24 #Servers
keepalived + nginx 实现高可用方案
Dec 24 #Servers
ubuntu20.04虚拟机无法上网的问题及解决
Dec 24 #Servers
ubuntu如何搭建vsftpd服务器
Dec 24 #Servers
CentOS7设置ssh服务以及端口修改方式
Dec 24 #Servers
CentOS7 minimal 最小化安装网络设置过程
Dec 24 #Servers
Elasticsearch6.2服务器升配后的bug(避坑指南)
Sep 23 #Servers
You might like
浅析PHP中Collection 类的设计
2013/06/21 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
JQuery基础语法小结
2015/02/27 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
vue实现计步器功能
2019/11/01 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
python解析xml简单示例
2019/06/21 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
努比亚手机官网:nubia
2016/10/06 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
服务标语大全
2014/06/18 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
确保工程质量承诺书
2015/04/29 职场文书