【问题标题】:Git environment for CodeIgniter projectCodeIgniter 项目的 Git 环境
【发布时间】:2011-01-20 19:19:18
【问题描述】:

我开始创建一个基于 CI 2.0 Reactor repository 的新 CI 项目。由于 CI2 代码仍在更改,我想保持该代码新鲜,问题是如何(使用 Git)。

对于非 CI 人员,CI2 项目的基本结构如下所示:

system/  
application/  
index.php
...

系统目录包含框架,index.php 进行引导,应用程序包含我的项目。理想情况下,我想使用 Git 使 index.php 和系统文件夹保持最新。我要坚持的另一件事是应用程序文件夹的名称。 (您可以在 index.php 中更改应用程序文件夹的路径。)保持名称不变可以直接放入文件夹,然后就可以使用了。

我尝试通过使用git submodules(见下文)来实现这一点,但子模块不允许您从目标存储库中指定目录。

git submodule add https://github.com/philsturgeon/codeigniter-reactor.git/code-igniter/system system

有什么办法可以做到这一点吗?

【问题讨论】:

    标签: git codeigniter codeigniter-2


    【解决方案1】:

    遗憾的是,您不能引用子模块中的特定文件夹,只能引用子模块本身的根目录。这意味着您需要将您的应用程序放在一个子文件夹中,这将是废话。

    但是,您可以在 Git 应用程序上设置两个遥控器。

    git 初始化
    git remote add origin git://whatever
    git remote add reactor git@github.com:philsturgeon/codeigniter-reactor.git

    然后随着反应堆的变化更新

    git pull 反应堆主
    git push 起源大师

    请记住,这个克隆的真正目的是帮助人们在不需要学习 Mercurial 的情况下获得他们的 CodeIgniter Reactor 更改 int,但只要它存在,欢迎您使用它。

    【讨论】:

    • 谢谢菲尔,应该这样做。
    【解决方案2】:

    我也遇到了同样的问题。

    我真的很想使用 git 将 codeigniter 核心带入应用程序,而无需每次都复制和粘贴更新!使用 git 子模块有很多优点(使用 git 的人都知道)。

    所以我是这样做的:

    mkdir yourapp
    cd yourapp
    git init
    git sudmodule add git://github.com/EllisLab/CodeIgniter.git codeigniter
    mkdir public
    cp codeigniter/index.php public/
    cp -rp codeigniter/application .
    

    现在编辑 public/index.php 并更改:

    $system_path = 'system';
    

    到:

    $system_path = '../codeigniter/system';
    

    和:

    $application_folder = 'application';
    

    到:

    $application_folder = '../application';
    

    现在将您的网络服务器指向您的“公共”文件夹,就完成了!现在你有了一个带有 codeigniter 作为子模块的项目 :)

    【讨论】:

      【解决方案3】:

      对于这样的事情,我会手动更新它们并检查是否存在冲突。

      【讨论】:

      • 谢谢,但我的意思是自动执行此操作。我原以为很多人会遇到这样的问题来管理他们的依赖关系。
      【解决方案4】:

      这不是您问题的真正答案,但一般来说,信任更改的第三方项目并不是一个好主意:更新可能会在没有警告的情况下破坏您的应用程序。我建议不时手动更新它,并在更新后测试您的应用程序。这样,您的应用程序就不太可能突然中断。

      【讨论】:

      • 感谢您的提醒。我正在处理的项目是为了测试目的,不会在生产环境中运行,并且由单元测试支持。它旨在破坏(并报告它为什么会破坏;-))。
      • 无论您是手动更新更改还是通过运行命令来更新更改,在某些时候您都会有意识地决定“是的,我想要这些更改”。大多数人只是等待稳定的发布,但过于强调“稳定”。只要您观察所做的更改,您就知道何时准备好更新。
      【解决方案5】:

      我从未遇到过将框架核心保存在 github 存储库中或直接通过另一个存储库将其拉入的项目或框架。你应该依靠作曲家来做这样的事情。

      【讨论】:

        猜你喜欢
        • 2013-11-28
        • 1970-01-01
        • 1970-01-01
        • 2011-11-25
        • 1970-01-01
        • 1970-01-01
        • 2013-02-26
        • 2017-09-25
        • 2021-02-22
        相关资源
        最近更新 更多