【发布时间】:2013-10-23 16:36:46
【问题描述】:
我正在尝试建立一个存储库系统,允许项目共享一个“框架”远程,以便可以将框架的错误修复拉入项目中。
我的方法是在//NAS/projects/base 建立一个裸存储库,将其克隆到//NAS/projects/projectX 的裸存储库,并将projectX 的远程从origin 重命名为framework 以避免混淆。目的是每个开发人员都可以克隆//NAS/projects/projectX 并将其更改推送回该存储库,框架维护者可以克隆//NAS/projects/base 并将其更改推送回该存储库。然后projectX 可以从基础拉取 - 在这里我的方法失败了,因为我无法拉入裸存储库。
existingquestions 的设置看起来表面上相似,但经过检查似乎只解决了第二个裸存储库是第一个存储库的镜像的情况。这不是这里的情况:我希望能够创建一个projectY,它也使用框架并获取其更改,但没有任何特定于projectX 或projectY 的代码以base 结尾。
git 是如何支持这种结构的?是否有人需要将base 作为远程添加到他们的本地存储库,从中提取,然后推送到projectX?我可以从base 获取到projectX:然后我可以执行一些命令将其主控重新设置为base 主控的HEAD?还是我以完全错误的方式解决这个问题?
【问题讨论】:
-
框架是项目使用的库,还是更多的被编辑和/或构建的核心组件?如果它是一个库,我会在它自己的存储库中跟踪它,并使其成为使用它的项目中的子模块。
-
@cjc343,第二个。它在结构上不适合子模块方法。