git web开发版本管理

使用git来管理web开发;

我们需要做的事情 :

1,在服务器建立版本仓库;

2,在服务器建立稳定版本的站点,编写版本仓库的hooks;

3,在开发服务器上提交开发版本;

 

下面一步一步来:(注意建立新用户,如git)

1,在服务器上建立版本管理仓库;假定目录为 /git/,切换到该目录下;建立一个工程

1
2
cd  /git/mkdir  project.git
git init --bare

2,在服务器上建立稳定版本的站点,例如目录是 /home/www ; 下面是重点,写钩子hooks:

1
2
3
4
cd  /git/project .gitcp hooks /post-receive .sample hooks /post-receive
vim hooks /post-receive
#加入下面代码
GIT_WORK_TREE= /home/www  git checkout -f

 

3,在开发服务器上提交开发版本;假设目录为/git/project/

1
2
3
4
5
6
ssh -keygenssh-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://www.abcdocker.com/abcdocker/2041 

 写一个shell脚本或者使用php进行网页命令调用来同步代码是一个很不错的想法,我们用的是php执行shell命令来进行同步的。

 


 

  另外,如果想在多台生产服务器上进行代码同步,可以使用rsync+inotify进行实时同步,这样,在内网开发服务器向一台主服务器同步代码后,inotify监控脚本可以同步其他生产服务器,同步。











本文转自 蓝叶子Sheep 51CTO博客,原文链接:http://blog.51cto.com/dellinger/1957931,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值