码云(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如何配置Http、Https、WS、WSS的方法步骤
May 11 Servers
nginx作grpc的反向代理踩坑总结
Jul 07 Servers
Nginx实现负载均衡的项目实践
Mar 18 Servers
Apache Hudi集成Spark SQL操作hide表
Mar 31 Servers
深入解析Apache Hudi内核文件标记机制
Mar 31 Servers
CKAD认证中部署k8s并配置Calico插件
Mar 31 Servers
Linux、ubuntu系统下查看显卡型号、显卡信息详解
Apr 07 Servers
tomcat下部署jenkins的方法
May 06 Servers
超越Nginx的Web服务器caddy优雅用法
Jun 21 Servers
Zabbix对Kafka topic积压数据监控的解决方案
Jul 07 Servers
彻底卸载VMware虚拟机的超详细步骤记录
Jul 15 Servers
ubuntu端向日葵键盘输入卡顿问题及解决
Dec 24 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编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
用js实现随机返回数组的一个元素
2007/08/13 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
买卖协议书范本
2014/04/21 职场文书
银行自荐信范文
2015/03/25 职场文书
中秋节主题班会
2015/08/14 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
java实现web实时消息推送的七种方案
2022/07/23 Java/Android