我们通常处理与CodeIgniter共享类似目录结构的项目,其中有一个围绕我们的应用程序代码的框架(在父目录和兄弟目录中)。我们有两个主要的工作流程需要管理:
/application
目录)我在研究中发现的最接近的方法是使用fake submodules,使用一些.gitignore
或某种相关的伏都教,但这似乎非常脆弱。有没有更好的方法来设置我们的存储库和目录?
答案 0 :(得分:1)
更好的方法是按照优先顺序将时间投入到(非假的)子模块或子树的学习曲线中。你的评估是正确的 - “虚假子模块”是一种过度简化的脆弱尝试,这在琐碎的案例中就足够了,但不适用于许多项目和多个合作者,他们对分支,历史有不同的看法并发布子项目的管理。
如果您确实希望将所有内容视为一个巨大的项目,您可以查看git子树合并,但我建议您不要这样做,因为子模块特别适合管理具有不同发布计划的第3部分依赖项。
根据您的问题,我了解您的设置如下所示,简化,
parent-framework
|-- application
|-- framework
`-- other-framework
框架(即framework
,other-framework
和可能parent-framework
)是在github上管理的独立项目。
所以这就是我要做的,
application
存储库parent-framework
级别的超级项目,将所有内容绑定在一起,其中所有框架(包括您的私有application
仓库都是子模块。这将为您提供必要的灵活性,以便根据第三方依赖框架的正交SDLC管理您的application
开发线SDLC。
另请注意,最新版本的git使递归推送(和更新)子模块变得非常容易,因此应该很少关注为框架创建拉取请求的复杂性。