最近由于需要对正在运行的系统进行新功能添加,本来是可以通过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在服务器上部署git仓库并实现提交代码时同步代码到生产环境...相关推荐

  1. outlook邮箱邮件与企业邮箱同步(outlook本地文件夹邮件,web邮箱里没有)

    用惯了outlook2010, 问题:今天将邮件放到自定义文件夹后,发现在web邮箱中看不到邮件了.不能同步到企业邮箱. 解决忙了一天,才知道是账户类型问题,pop3类型,只下载不上传.所以outlo ...

  2. 云服务器连接手机本地文件夹,云服务器连接手机本地文件

    云服务器连接手机本地文件 内容精选 换一换 怎样上传文件到Windows操作系统云服务器?安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe. ...

  3. 码云上传本地文件夹,码云只能上传20个文件的突破方法

    码云官方地址:https://gitee.com/ 很多人不知道码云上传本地文件夹怎么操作,或者如何突破码云只能上传20个文件限制的问题,今天就来说说这事的方法吧. 简介: 码云是媲美GitHub的代 ...

  4. 码云上传文件夹_码云上传本地文件夹,码云只能上传20个文件的突破方法

    码云官方地址:https://gitee.com/ 很多人不知道码云上传本地文件夹怎么操作,或者如何突破码云只能上传20个文件限制的问题,今天就来说说这事的方法吧. 简介: 码云是媲美GitHub的代 ...

  5. 服务器怎么解压文件夹,怎么在云服务器上解压文件夹

    怎么在云服务器上解压文件夹 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 该任 ...

  6. ftp服务器共享不了文件夹权限设置密码,ftp服务器共享文件夹权限设置

    ftp服务器共享文件夹权限设置 内容精选 换一换 Linux x86-64(64位)服务器,常见的有EulerOS.Ubuntu.Debian.CentOS.OpenSUSE等.Windows 7及以 ...

  7. 英灵神殿服务器本地文件夹,Valheim英灵神殿服务器搭建教学[多图]

    Valheim英灵神殿推出有一段时间了,很多玩家都忙于饲养打boss,然而有时主机玩家不在线,没有办法去平时一起玩的世界,那么这次就为大家带来了最简单的服务器搭建教程. Valheim英灵神殿服务器搭 ...

  8. 服务器里没有wwwroot文件夹,完美解决IIS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没......

    现象: 浏览ASP页面提示   500内部错误 事件查看器中: [1]: 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'.错误是 '没有注册类别'. 有关此消息的详细信息,请访问 Mic ...

  9. 服务器文件夹和电脑文件夹同步软件哪个好,windows文件同步备份软件-文件夹同步工具哪个好?...

    曾有个客户致电询问自己一些重要的数据保存至D盘文件夹内,但是这些文件经常会改动,每次都是的手动复制粘贴至移动硬盘备份保存,有没有什么工具可以实现一键同步备份?今天就给大家介绍windows文件同步备份 ...

最新文章

  1. java 打电话_第四十二篇----拨打电话
  2. UIImage的scale
  3. 做网站应用应注意的那几点
  4. ssh,scp带密码操作
  5. 【常见笔试面试算法题12续集三】动态规划算法案例分析3 LIS练习题(最长上升子序列)
  6. 用vector编写一个矩阵模板
  7. php 同步文件到服务器上,PHPstorm配置同步服务器文件
  8. 《羊了个羊》创始人被母校制成展牌
  9. SSD硬盘的寿命测试
  10. 2021年N1叉车司机免费试题及N1叉车司机模拟试题
  11. Python基础知识从hello world 开始(第三天)
  12. 从零学物联网技术:较大影响了我们生活的物联网技术应用有哪些?
  13. scrapy爬虫实战:伪装headers构造假IP骗过ip138.com
  14. 嵌入式linux检测U盘拔插
  15. 大数据社会的十三大具体应用场景(二)
  16. 论文引用部分是否需要查重?
  17. 如何撰写出优秀的技术文档
  18. Thread.interrupted()与Thread.isInterrupted()的区别
  19. Redis启动和连接
  20. 联想LJ2400激光打印机开机4灯闪烁维修分析

热门文章

  1. 钉钉群在线编辑的文件过期,怎么找回
  2. 微信浏览器禁掉上下滑动(必看)
  3. Hyperx飓风无线游戏耳机,不止是看上去是专业游戏耳机
  4. 给vue的页面添加背景图片
  5. Android通讯录管理(获取联系人 通话记录 短信消息)(三)
  6. linux内核网络驱动框架(linux驱动开发篇)
  7. faiss-7: 基础索引类型
  8. QRCode自定义二维码中间图片
  9. Linux、Python、计算机网络中的常见知识点
  10. python将想要打印的数据输出到txt文件中,打印省略号里面的内容