美文网首页
使用git在服务器上部署git仓库并实现提交代码时同步代码到生产

使用git在服务器上部署git仓库并实现提交代码时同步代码到生产

作者: 秋意思寒 | 来源:发表于2017-10-27 02:00 被阅读0次

最近由于需要对正在运行的系统进行新功能添加,本来是可以通过github进行代码维护,但是由于这个项目涉及一些问题,目前还不能开源,所以只能是手动覆盖bug文件,生产环境上的代码反而是最新的了。

之前有个思路,就是将git仓库部署到生产环境所在的服务器中,今天做了一下尝试,效果还不错,特意再次做出总结。具体实现的目标就是:

使用git在服务器上部署git仓库并实现提交代码时同步代码到生产环境,参考这里棒棒哒.废话少说,进入正题。

首先,需要在服务器上安装git,这里就不再罗嗦,不会装的,出门左转点击这里

以下代码命令和代码实例中说明一下几点:

  • 所有服务器上的操作,为了避免遇到权限的问题,是直接进入su超级用户下的操作。
  • 创建的项目名为my_site
  • 在服务器上,我选择将仓库创建在/var/下,生产环境项目代码放在/projects/my_site/。阅读者可以自行更改,但是需要记住更改后的路径。
  • 为了隐私,实例的服务器ip用serverhost代替,用户用user代替。

在服务器上创建git仓库

我选择在/var/下创建:

mkdir git  && cd git
mkdir my_site.git && cd my_site.git
git init --bare

--bare的意思是,该文件夹是我们的代码仓库,它将不会放源代码而只是做版本控制。

创建钩子

将会使用post-receive钩子,更多相关的信息可以参考官方文档。

ls

可以看到hooks已创建,而且里面也有各种钩子的样例。

11.jpg

创建我们自己的post-receive:

cd hooks
vim post-receive

post-receive中需要同步的语句

#!/bin/sh
git --work-tree=/projects/my_site/ --git-dir=/var/git/your_site.git checkout -f

编辑完成之后保存。

将git仓库设成可读写的:

chmod 777 -R *

如果生产环境项目所在目录/projects/my_site/不存在,要记得创建,同时让其的权限成为任何人都可读写!

mkdir /projects/my_site/
cd /projects/ && chmod 777 -R *

服务器上的仓库和同步钩子配置到此完毕,下面需要我们在本地编写项目并上传至服务器仓库。

本地项目推送

一般情况是你已经有了自己的git项目了,那么只需要添加仓库地址就行了。

git remote add server ssh://user@serverhost/var/git/my_site.git

'server'只是这个远程连接的名称,你可以同时有多个远程连接,每次push的时候指定名称即可将代码上传到不同的仓库。

如果你本地还没有项目代码:

cd my_site
git init
git add *
git commit -m "commit"
git remote add server ssh://user@serverhost/var/git/my_site.git
git push server master

master指定的是master分支,如果你有其他分支也可以push其他分支。

补充:

我们也可以从git仓库中clone代码到本地:

git clone ssh://user@serverhost/var/git/my_site.git

--

相关文章

  • 使用git在服务器上部署git仓库并实现提交代码时同步代码到生产

    最近由于需要对正在运行的系统进行新功能添加,本来是可以通过github进行代码维护,但是由于这个项目涉及一些问题,...

  • 服务器与GIT仓库代码保持同步

    服务器与GIT仓库代码保持同步 前提条件: 代码仓库部署到服务器,不仅存于本地(GitHub or GitLab,...

  • git使用

    从本地git仓库向github仓库提交提交代码出错的解决办法 在使用git 对源代码进行push到gitHub时可...

  • git常用指令

    下载远程仓库代码 git clone 代码仓库地址 从远程仓库拉取代码 git pull 提交代码到本地分支,并推...

  • iOS上传公共组件到git

    一、新建git仓库,并选择License 二、提交源代码到刚刚建立的仓库 1、提交代码: git add -Agi...

  • git自动部署代码

    git自动部署代码服务器创建裸仓库: 配置自动部署代码的脚本: 权限问题:git:git nginx:www...

  • git使用手册

    git 版本管理 在server上创建代码仓库 使用Pycharm 同步server 的代码 Pycharm 中提...

  • 通过Git将本地项目和远程仓库做关联

    添加远程代码仓库: git remote add origin 远程仓库地址 提交代码到远程仓库: git pus...

  • Git

    Git Git常用命令 提交代码到本地仓库 删除所有untracked的文件 回退版本 从远端拉取代码 同步本地代...

  • git

    git 如果服务器上没有本地代码git仓库,先在服务器建立1个git仓库,然后在本地git仓库增加服务器仓库URL...

网友评论

      本文标题:使用git在服务器上部署git仓库并实现提交代码时同步代码到生产

      本文链接:https://www.haomeiwen.com/subject/dfglpxtx.html