当前位置: 首页 > news >正文

本地项目推送到腾讯云轻量应用服务器教程(并实现本地推送远程自动更新)

将本地项目上传到腾讯云轻量应用服务器并实现后续的推送更新,具体步骤如下:

  1. 在本地项目目录下初始化 Git 仓库:
cd 项目目录
git init
  1. 将项目文件添加到 Git 仓库并提交:
git add .
git commit -m "Initial commit"
  1. 在腾讯云服务器上安装 Git:
# 对于 CentOS 系统
yum install git

# 对于 Ubuntu 系统
apt-get install git
  1. 登录到服务器并创建一个裸仓库(bare repository):
cd /项目存放目录
git init --bare 项目名.git

这个时候会有一个项目名.git的文件夹(这里项目名称为wechat-push,后续均以这个为例讲解),里面包含的是init初始化的9个文件或文件夹,例如下面的wechat-push.git文件夹
在这里插入图片描述
5. 在本地项目仓库添加远程仓库地址:

git remote add origin root@服务器IP:/项目存放目录/项目名.git
  1. 将本地项目推送到远程仓库:
git push -u origin master
  1. 在服务器上克隆远程仓库到项目存放目录:
cd /项目存放目录
git clone /项目存放目录/项目名.git

比如cd /www/wwwroot/wechat-push在这个目录下执行git clone /www/wwwroot/wechat-push/wechat-push.git
这个时候就将项目源码下载到对应目录了
在这里插入图片描述
在这里插入图片描述

至此,项目已成功上传到服务器。以后每次在本地修改项目后,只需执行以下命令推送到远程服务器:

git add .
git commit -m "Your commit message"
git push

在服务器端,进入项目存放目录下的项目文件夹,拉取更新:

cd /项目存放目录/项目名
git pull

这样,就可以实现在本地修改项目后推送到远程服务器的目的。

但是现在还不能实现本地推送之后,远程服务器自动更新,还需要在服务器端手动拉取代码,接下来讲解如何本地push之后服务器端项目自动拉取最新代码。

为了实现本地 push 之后服务器自动同步更新,需要在服务器的 Git 裸仓库中添加一个钩子(hook)脚本。这里以使用 post-receive 钩子为例:

  1. 在服务器的 Git 裸仓库中创建 post-receive 钩子脚本:
cd /项目存放目录/项目名.git/hooks
touch post-receive
chmod +x post-receive

在这里插入图片描述

touch是创建文件夹的命令,post-receive 是 Git 钩子脚本的一种类型,它会在接收到推送(push)事件后触发。
在这里插入图片描述
chmod +x post-receive:chmod 命令用于修改文件权限。+x 表示添加可执行权限。这里用它为 post-receive 脚本添加可执行权限,这样 Git 才能在接收到推送时运行此脚本。

  1. 编辑 post-receive 脚本,将以下内容添加到脚本中(请替换为实际的项目存放目录和项目名):
#!/bin/sh
TARGET="/项目存放目录/项目名"
GIT_DIR="/项目存放目录/项目名.git"
BRANCH="master"

while read oldrev newrev ref
do
    # 只有当推送的是 master 分支时才执行
    if [ "$ref" = "refs/heads/$BRANCH" ];
    then
        echo "Ref $ref received. Deploying ${BRANCH} branch to production..."
        git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
    else
        echo "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server."
    fi
done

在这里插入图片描述

  1. 保存并关闭脚本。

现在,每当你从本地推送 master 分支到服务器时,服务器会自动将项目文件更新到网站根目录。这样就实现了本地 push 之后服务器同步更新的需求。

相关文章:

  • 设计模式:观察者模式 ⑧
  • 夏目友人帐 第六季特别篇 2017.09.27
  • Android SDK2 (实操三个小目标)
  • Android Q - 应用保活记录(展锐平台)
  • 学习JAVA的第十二天(基础)
  • 进程与线程:通过实际生活来解析计算机的基本运作单位
  • QT绑定信号槽重载
  • VS code下载与使用方法(包含远程调试)
  • anaconda, conda, conda-forge
  • SpringCloud--Sentinel基本概念介绍
  • 如何在Vue项目中应用TypeScript?
  • java 获取项目内的资源/配置文件
  • 第5章---GameplayEffect的使用
  • 算法题 — 三个数的最大乘机
  • Linux系统之部署复古游戏平台
  • RabbitMQ安装
  • 程序计数器介绍
  • 团体程序设计天梯赛 L2-007 家庭房产(并查集模拟)
  • Spring Test 常见错误
  • 本机虚拟机centos7设置固定ip
  • 央行:中国政府债务扩张仍有可持续性
  • 央行谈MLF:逐步退出政策利率属性回归流动性投放工具
  • 安徽亳州涡阳县司法局党组书记刘兴连落马
  • 援藏博士张兴堂已任西藏农牧学院党委书记、副校长
  • 七方面118项任务,2025年知识产权强国建设推进计划印发
  • 国家主席习近平同普京总统出席签字和合作文本交换仪式