码云(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简单配置多个server的方法
Mar 31 Servers
Nginx服务器如何设置url链接
Mar 31 Servers
详解nginx进程锁的实现
Jun 14 Servers
图文详解Nginx版本平滑升级方案
Sep 15 Servers
nginx实现动静分离的方法示例
Nov 07 Servers
关于Nginx中虚拟主机的一些冷门知识小结
Mar 03 Servers
Shell脚本一键安装Nginx服务自定义Nginx版本
Mar 20 Servers
nginx日志格式分析和修改
Apr 28 Servers
apache ftpserver搭建ftp服务器
May 20 Servers
apache虚拟主机配置的三种方式(小结)
Jul 23 Servers
zabbix如何添加监控主机和自定义监控项
Aug 14 Servers
Nginx如何配置多个服务域名解析共用80端口详解
Sep 23 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安装为Apache DSO
2006/10/09 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
DOM 基本方法
2009/07/18 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
python optparse模块使用实例
2015/04/09 Python
python实现在windows下操作word的方法
2015/04/28 Python
Python读写文件方法总结
2015/06/09 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
Python正则表达式教程之二:捕获篇
2017/03/02 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
set在python里的含义和用法
2019/06/24 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
阿巴庭院:Abba Patio
2019/06/18 全球购物
工商管理实习生自我鉴定范文
2013/12/18 职场文书
优秀教师事迹简介
2014/02/02 职场文书
环保建议书
2014/03/12 职场文书
小学生操行评语
2014/04/22 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
文员求职信
2014/07/15 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
青少年法制教育心得体会
2016/01/14 职场文书