处理开发和生产站点的一个CI代码库

时间:2013-04-26 21:05:13

标签: php git codeigniter

我想我差不多想通了。我将使用GIT和我的实时文件结构,我正在试图弄清楚我应该如何做到这一点。我的问题是我将为开发(dev)创建一个分支,为生产站点(public_html)创建一个分支。如果index.php文件是用于CI的,那么它们是否应该具有相同的index.php文件,那么if语句将处理您当前所处的环境。

 /root
    /application
    /dev
        /site1
            /assets
            index.php
    /public_html
        /assets
        index.php
    /system

1 个答案:

答案 0 :(得分:2)

是的,您可以拥有一个index.php文件,让它决定如何为每个环境设置常量。 更重要的是您的database.php文件。您应该使用以下方法从GIT存储库中排除database.php

我们目前的设置包括以下分支:

/master
/test
/beta

我们还有三个服务器环境:

  • 生产
  • QA
  • 开发

我们正在SpringLoops上使用发布系统在betatest分支上自动部署,但要在master分支上使用手动部署。这样,我们就可以拥有最新版本的开发和QA测试(与我们当前的构建状态相匹配),并且还能够轻松部署我们的生产代码。

所有这些都使用与database.php文件相同的完全代码库。

祝你好运!

更新:您不应与dev数据共享test/prod数据。您可能会对测试做一些事情并生成不合需要的数据。对于代码也是如此,这也是 在任何给定时间具有3个不同代码副本的原因。每个副本都可以防止您覆盖自己,和/或在开发过程中向生产中引入错误。

因此,您的环境应该更像:

/root
    /dev
        /application
        /assets
        /system
        index.php
    /test
        /application
        /assets
        /system
        index.php
    /public_html
        /application
        /assets
        /system
        index.php

现在,您的GIT仓库只跟踪/ dev文件夹下的任何内容,因为这三个都是彼此的副本,只有在不同的提交状态下才会存在。

希望这一切都有意义。一个代码库。开发三个独立的地方,测试,然后发布到生产。