首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合git存储库中除git子模块或子树合并方法之外的子项目中正在增长的基项目

组合git存储库中除git子模块或子树合并方法之外的子项目中正在增长的基项目
EN

Stack Overflow用户
提问于 2012-11-24 16:34:48
回答 1查看 614关注 0票数 2

未来会有一些子项目:“项目1”、“项目2”等等。

另外,还有一个项目叫做“基础项目”,它是其他项目的基础。“基础项目”是一个内容管理系统(CMS)。

所有项目都有自己的git存储库。

“项目1”、“项目2”和其他人使用“基础项目”来发展和增长。

在git中有一些方法,比如submodule或subtreemerge。但似乎不适合这里。“基本项目”不应该克隆到子目录中。它在根目录中。它在“项目1”或“项目2”中成长...

当我在子项目中工作时,我必须能够将“基础项目”更改单独推送到它自己的存储库,以获取其他子项目。

我能做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-25 20:49:09

子树合并或子模块用于:组合在一起的两组不同但连贯的文件。

每组文件都在自己的目录中,因为它们可以单独分支或标记(子模块),也可以组合在一起(子树合并,同时保留获取自己的历史记录的能力)。

不过,这两者都需要单独的目录。

但您所描述的("Base Project“在根目录中,在"project 1”或“project 2”中增长)是关于:所有组件合并到一个大型组件中:一个大型文件集,它们将始终作为一个单元一起发展。

因此每个项目可以有一个分支:branch1用于CMS-projet1branch2用于CMS-project2,依此类推。

但是,如果您需要将projectx-specific修改或特定于CMS的修改报告回其原始(和单独的)存储库,则将在专用分支中进行上述特定更改,然后将这些更改合并为

  • branchp1表示影响project1
  • branchc1的更改,表示影响CMS
  • branch1的更改是branchp1branchc1

合并的结果

(branch2也是如此)

然后,可以将这些更改导出为patches

  • from branchp1 to project1 repo
  • from branchc1 to CMS repo

不方便的是,Git不会记住已经合并回原始repos的内容,但这将允许您将在CMS-projectx文件集中开发的公共历史记录报告回原始CMSprojectx repos。

注意:如果您不想管理额外的2个分支,另一个解决方案是:

确保每次提交只包括内容管理系统修改或项目modification

  • leave有助于区分它们的提交消息("[CMS] my CMS modification comment...",或"[Project1] my project1 modification comment..."

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13539636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档