赞
踩
将本地项目上传到腾讯云轻量应用服务器并实现后续的推送更新,具体步骤如下:
cd 项目目录
git init
git add .
git commit -m "Initial commit"
# 对于 CentOS 系统
yum install git
# 对于 Ubuntu 系统
apt-get install git
cd /项目存放目录
git init --bare 项目名.git
这个时候会有一个项目名.git的文件夹(这里项目名称为wechat-push,后续均以这个为例讲解),里面包含的是init初始化的9个文件或文件夹,例如下面的wechat-push.git文件夹
5. 在本地项目仓库添加远程仓库地址:
git remote add origin root@服务器IP:/项目存放目录/项目名.git
git push -u origin master
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 之后服务器自动同步更新,需要在服务器的 Git 裸仓库中添加一个钩子(hook)脚本。这里以使用 post-receive 钩子为例:
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 才能在接收到推送时运行此脚本。
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
现在,每当你从本地推送 master 分支到服务器时,服务器会自动将项目文件更新到网站根目录。这样就实现了本地 push 之后服务器同步更新的需求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。