zoukankan      html  css  js  c++  java
  • 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监控脚本可以同步其他生产服务器,同步。

            

  • 相关阅读:
    缓存架构设计细节二三事
    数据库软件架构设计些什么
    100亿数据1万属性数据架构设计
    这才是真正的表扩展方案
    啥,又要为表增加一列属性?
    究竟啥才是互联网架构“高可用”
    究竟啥才是互联网架构“高并发”
    Linux用过的命令
    Xshell远程连接工具
    oracle分组取第一条
  • 原文地址:https://www.cnblogs.com/trying/p/3301883.html
Copyright © 2011-2022 走看看