码云(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优化服务之网页压缩的实现方法
Mar 31 Servers
nginx proxy_cache 缓存配置详解
Mar 31 Servers
浅谈Nginx 中的两种限流方式
Mar 31 Servers
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
Jul 07 Servers
总结高并发下Nginx性能如何优化
Nov 01 Servers
Nginx禁止ip访问或非法域名访问
Apr 07 Servers
在Docker容器中部署SQL Server
Apr 11 Servers
Linux磁盘管理方法介绍
Jun 01 Servers
Win2008系统搭建DHCP服务器
Jun 25 Servers
Nginx报404错误的详细解决方法
Jul 23 Servers
nginx配置指令之server_name的具体使用
Aug 14 Servers
VMware虚拟机安装 Windows Server 2022的详细图文教程
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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
python基于socket实现网络广播的方法
2015/04/29 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
linux面试题参考答案(8)
2015/08/11 面试题
2014年党员评议表自我评价
2014/09/27 职场文书
技术入股协议书
2016/03/22 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python