git web开发版本管理
使用git来管理web开发;
我们需要做的事情 :
1,在服务器建立版本仓库;
2,在服务器建立稳定版本的站点,编写版本仓库的hooks;
3,在开发服务器上提交开发版本;
下面一步一步来:(注意建立新用户,如git)
1,在服务器上建立版本管理仓库;假定目录为 /git/,切换到该目录下;建立一个工程
cd /git/
mkdir project.git
git init --bare
2,在服务器上建立稳定版本的站点,例如目录是 /home/www ; 下面是重点,写钩子hooks:
cd /git/project.git
cp hooks/post-receive.sample hooks/post-receive
vim hooks/post-receive
#加入下面代码
GIT_WORK_TREE=/home/www git checkout -f
3,在开发服务器上提交开发版本;假设目录为/git/project/
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub git@yourserver
git init
git add *
git commit -a -m "init a version"
git remote add origin git@youserver:/git/project.git
git push origin master
这个时候,查看一下 /home/www下,文件应该已经更新了...
华丽的分隔线
这种方法在生产服务器上也建立了版本管理,这样会消耗服务器资源,还可以带来源代码泄露(例如某个开发版本将密码都写了进去,后果不堪设想)等其他安全隐患,所以在后面的开发中,我们采用了Git+Rsync的架构,内网开发服务器架设GitLab进行源代码管理 ,同时搭建rsync客户端进行代码同步;生产服务器只使用Rsync服务端监听端口接收同步请求。
GitLab的搭建可以参考:
https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos
http://www.pickysysadmin.ca/2013/03/25/how-to-install-gitlab-5-0-on-centos-6/
相对于Gitlab,我更喜欢使用Gitolite+Gitweb来进行代码审阅,因为他们的安装更简单一点,而且,Gitweb的代码很简炼,我们可以很方便地进行功能的添加,例如我们之前添加的增量更新的功能。
Rsync的搭建可以参考这篇文章。
写一个shell脚本或者使用php进行网页命令调用来同步代码是一个很不错的想法,我们用的是php执行shell命令来进行同步的。
另外,如果想在多台生产服务器上进行代码同步,可以使用rsync+inotify进行实时同步,这样,在内网开发服务器向一台主服务器同步代码后,inotify监控脚本可以同步其他生产服务器,同步。
git web开发版本管理的更多相关文章
- 分享一篇 Git Web 开发流程
分享一篇 Git Web 开发流程 web 项目如何进行 git 多人协作开发 https://segmentfault.com/a/1190000018165757
- 2016 Web开发资源工具大搜罗
来源于:https://zhuanlan.zhihu.com/p/22730771 作者:余博伦链接:https://zhuanlan.zhihu.com/p/22730771来源:知乎著作权归作者所 ...
- 2016 Web 开发资源工具大搜罗
原文链接: 100+ Awesome Web Development Tools and Resources Web的迅猛发展对于开发者来说既是一件好事也是一件坏事.不断紧跟潮流学习新的技术.编程语言 ...
- 2019 Web开发学习路线图
以下 Web 开发人员学习路线图是来自 Github developer-roadmap 项目,目前已经有繁体版翻译 developer-roadmap-chinese. 主要有三个方向,分别为前端开 ...
- [转帖]2019 简易Web开发指南
2019 简易Web开发指南 2019年即将到来,各位同学2018年辛苦了. 不管大家2018年过的怎么样,2019年还是要继续加油的! 在此我整理了个人认为在2019仍是或者将成为主流的技术 ...
- git web 服务器的搭建【转】
转自:http://blog.csdn.net/transformer_han/article/details/6450200 目录(?)[-] git服务器搭建过程 需求 硬件需求一台Ubuntu或 ...
- 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念 ...
- Web开发从零单排之一:在新浪云平台SAE上开发一个html5电子喜帖
需求描述: 本人大婚将至,女朋友说“现在都流行在微信上发电子请帖了,你不是技(cheng)术(xu)宅(yuan)嘛,不会连这个都搞不定吧” 本人嘴上说这等小事何足挂齿,但心里还是七上八下的,虽然自认 ...
- Git&Gitlab开发流程与运维管理
Git&Gitlab开发流程与运维管理 作者 刘畅 时间 2020-10-31 实验系统版本centos7.5 主机名称 ip地址 配置 安装软件 controlnode 172.16.1.1 ...
随机推荐
- Rainmeter 一部分 语法 中文教程
;Meter基本元素示例:;如果是[MeterStyle]表示Meter的公共Style,类似CSS的意义!!!;颜色可以使用网页的颜色定义方式,如半透明黄色:255.255.0.128=FFFF00 ...
- 扩展一个boot的插件—tooltip&做一个基于boot的表达验证
在线演示 本地下载 (代码太多请查看原文) 加班,加班加班,我爱加班··· 我已经疯了,哦也. 这次发一个刚接触boot的时候用boot做的表单验证,我们扩展一下tooltip的插件,让他可以换颜色. ...
- tomcat7部署多个web应用不同编码,端口
1个tomcat部署多个web应用可以设置不同编码,端口,server.xml配置如下: <?xml version='1.0' encoding='utf-8'?><Server ...
- android中实现拨号功能
1.要实现拨号功能,首先需要开启拨号权限 修改AndroidManifest.xml文件,添加如下内容: <uses-permission android:name="android. ...
- MVC 之 缓存机制(二)
八.应用程序缓存 应用程序缓存提供了一种编程方式,可通过键/值对将任意数据存储在内存中. 使用应用程序缓存与使用应用程序状态类似. 但是,与应用程序状态不同的是,应用程序缓存中的数据是易失的, 即数据 ...
- MySql【Insert Select Not Exist】判断记录再添加值的方案
INSERT INTO content ( detail, status, beginTime, endTime) SELECT @detail, , NULL, NULL FROM DUAL WHE ...
- Mahout 协同过滤 itemBase RecommenderJob源码分析
来自:http://blog.csdn.net/heyutao007/article/details/8612906 Mahout支持2种 M/R 的jobs实现itemBase的协同过滤 I.Ite ...
- cocos2d-js 小游戏 hungry-hero (原版是flash starling)
[本文被整理到cocos2d-js官方介绍中:http://cn.cocos2d-x.org/tutorial/show?id=1435] 之前看starling资料的时候,发现印度一高人的hungr ...
- Oracle SQLPLUS提示符设置
Oracle SQLPLUS提示符设置 把Oracle sqlplus提示符修改为如下,可以提醒你所在的用户模式,减少误操作. set sqlprompt _user'@'_connect_ident ...
- java sm3加密算法
java sm3加密算法实现 CreationTime--2018年7月13日09点28分 Author:Marydon 1.准备工作 所需jar包: bcprov-jdk15on-1.59.ja ...