2010-01-14 81 views
5

这里是场景: 我目前正在自己​​的框架和客户的网站上工作。下面是结构:在一个文件夹中使用两个git回购

. 
.. 
_application 
_framework 
_public 

我想有_framework/* _Public/index.php文件和结构_Application在github上(为空_controllers _models和_views文件夹)回购。另外我想有一个包含所有这些本地的回购。

我明白,与git模块我可以做到这一点,但查找一些教程后,我仍然不明白这样做的方式。

有人可以解释它对我多一点?非常感谢!

+0

这是我做的: 我做了一个目录,其中包含我的框架的东西。我做了一个git回购。然后我为我的客户的项目创建了另一个目录。我在其中创建了一个回购并克隆了我的github的框架回购。 因为我这样做,我可以在我的框架提交的东西没有被覆盖。当我直接向框架提交更改时,我将它们提交并推送给它们,并且可以将它们从我的项目目录中提取出来!我认为这是个好主意:) – TomShreds 2010-01-14 16:36:46

+0

你的标题有点不清楚。它让我相信你想要在同一个文件夹中使用两个git仓库,但是你在两个单独的子文件夹中使用了两个git仓库。我实际上想知道是否可以使用两个单独的git repos来跟踪同一文件夹中的不同文件。 – Chad 2013-08-28 13:54:51

+1

@Chad,是的,他们可以:我做了一个脚本来做到这一点:https://github.com/capr/multigit – cap 2015-04-09 06:00:25

回答

7

在我看来,你可以定义每个想要结构一个回购协议,并在超级项目,通过子模块将它们结合起来。请参阅this question关于子模块性质的一些细节。

提取物:

子模块可让您有一个component-based approach发展,其中主要的项目只涉及到其他组件的具体提交(这里“声明为子模块等Git仓库”)。

子模块是一个标记(提交)到另一个不受主项目开发周期约束的Git存储库:它(“其他”Git回购)可以独立演变。 无论您需要什么提交,它都可以从其他回购中选择主项目。但是,如果出于方便,直接从您的主项目中修改其中一个子模块,Git允许您这样做,只要您首先将这些子模块修改发布到其原始Git仓库,然后提交您的项目主项目涉及所述子模块的新版本。

但主要的想法仍然是:参照其特定的组件:

  • 有自己的生命
  • 有自己的一套标签
  • 有自己的发展

名单您在主项目中提到的特定提交定义了您的configuration(这是配置管理器EMENT是一回事,仅仅包括Version Control System


所以,如果你真的有两个结构,可以独立发展一个从另一个子模块是一个不错的选择。

相关问题