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

 更新时间:2022年12月14日 17:37:56   投稿:yin  
当我们想要实现几个小伙伴合作开发同一个项目,或者建立一个资源分享平台的时候,GIT就是一个很好的选择。这篇文章主要介绍了码云(gitee)通过git自动同步到阿里云服务器

当我们想要实现几个小伙伴合作开发同一个项目,或者建立一个资源分享平台的时候,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

在这里插入图片描述

八、同步拉取代码

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

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

相关文章

  • 基于HTTP协议实现的小型web服务器的方法

    基于HTTP协议实现的小型web服务器的方法

    这篇文章主要介绍了基于HTTP协议实现的小型web服务器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2007-08-08
  • HTTP 错误 403.1禁止访问:禁止执行访问的完美解决方法

    HTTP 错误 403.1禁止访问:禁止执行访问的完美解决方法

    这篇文章主要介绍了HTTP 错误 403.1禁止访问:禁止执行访问的完美解决方法,需要的朋友可以参考下
    2016-11-11
  • Svn安装和使用_动力节点Java学院整理

    Svn安装和使用_动力节点Java学院整理

    这篇文章主要介绍了Svn安装和使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 便宜vps多是哪些技术架构方式(VPS分割架构是怎么超售的)

    便宜vps多是哪些技术架构方式(VPS分割架构是怎么超售的)

    对于vps服务器租用,一些人们可能比较注重vps服务器价格,那么,了解和清楚哪一类vps服务器比较便宜是有必要的,这样我们就有针对的去选用购买自己需要的便宜vps服务器
    2015-09-09
  • linux配置DNS主从服务器的实验步骤

    linux配置DNS主从服务器的实验步骤

    这篇文章主要介绍了linux配置DNS主从服务器的实验步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • 详解微服务架构及其演进史

    详解微服务架构及其演进史

    在很多项目的业务初期阶段,高速迭代上线是首要考虑的事情,对后期的容量预估、可扩展性和系统健壮性、高可用一般没有那么重视。但随着业务的发展,用户量、请求量的暴增发现原来的单体系统已经远远不满足需求了,特别是随着互联网整体的高速发展,对系统的要求越来越高
    2022-01-01
  • 服务器维护小常识(硬盘内容增加、数据库优化等)

    服务器维护小常识(硬盘内容增加、数据库优化等)

    为了能更好的使用和延长服务器的使用寿命,定期的对服务器进行维护是非常必要的。但是,在维护服务器的时候一定要小心的处理好维护的工作,否则出现错误的话就会影响很大
    2012-07-07
  • Flink 侧流输出源码示例解析

    Flink 侧流输出源码示例解析

    这篇文章主要为大家介绍了Flink 侧流输出源码示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 如何使用ansible批量初始化服务器

    如何使用ansible批量初始化服务器

    本文详细介绍ansible怎么批量初始化服务器,包括ansible批量初始化服务器详细配置和步骤,感兴趣的朋友一起看看吧
    2023-12-12
  • rsync备份海量文件时占用大量内存的解决方法

    rsync备份海量文件时占用大量内存的解决方法

    这篇文章主要介绍了rsync备份海量文件时占用大量内存的解决办法,需要的朋友可以参考下
    2016-07-07

最新评论