2011-01-20 35 views
6

Git的环境我开始用基于该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 

任何线索我怎么能做到这一点?

回答

5

可悲的是,你不能引用特定文件夹的子模块中,只有子模块本身的根源。这意味着你需要将你的应用程序放在一个子文件夹中,这会很糟糕。

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

GIT中的init
git的远程添加原点GIT中://任何
git的远程添加反应器[email protected]:philsturgeon /笨-reactor.git

然后更新与反应器改变

GIT中拉反应堆主
GIT中推原点主

请记住,这个克隆实际上是为了帮助人们在不需要学习Mercurial的情况下获得他们的CodeIgniter Reactor修改int,但是只要它存在就欢迎使用它。

0

不是一个真正的回答你的问题,但通常是不相信改变第三方项目是一个好主意:更新可以打破你的应用程序没有任何警告。我建议不时更新它,并在更新后测试您的应用程序。通过这种方式,应用程序的突然中断不太可能发生。

+0

谢谢你的抬头。我正在开发的项目仅用于测试目的,不会在生产环境中运行,并且受单元测试支持。它打算打破(并报告为什么它打破;-))。 – joelcox 2011-01-20 19:44:20

+0

无论是手动更新更改还是通过运行命令更新它们,在某些时候您都会有意识地决定“是的,我需要这些更改”。大多数人只是等待稳定的发布,但过于强调“稳定”。只要您看到正在进行的更改,就会知道何时可以更新。 – 2011-01-21 09:48:54

1

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

+0

谢谢,但我的观点是自动执行此操作。我曾想过很多人会遇到这样的问题来管理他们的依赖关系。 – joelcox 2011-01-21 09:22:46

5

我也偶然发现了同样的问题。

我真的想使用git把与应用程序的笨核心没有副本,每一次粘贴的更新!使用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 . 

现在编辑公共/指数。PHP和变化:

$system_path = 'system'; 

到:

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

和:

$application_folder = 'application'; 

到:

$application_folder = '../application'; 

现在指向您的Web服务器上的 “公共” 文件夹,它是完成了!现在你有一个codeigniter项目作为子模块:)

0

我从来没有遇到过一个项目或框架,你保存在你的github回购框架核心或直接通过另一个回购拉它。你应该依靠作曲家来完成这样的事情。