试图找出在git中使用子模块的正确方法

时间:2010-11-08 13:58:42

标签: git git-submodules branching-and-merging

我正在尝试在git中正确设置子模块,我想确保我正确使用它。

我有一个名为MyProject的主存储库。我有一个辅助存储库,其中包含所有代码生成的数据访问,称为Data。我想将Data设置为MyProject的子模块。

Data很少更改,除非有架构更改或小错误修复。

假设我正在向MyProject添加一些需要更改架构的新功能。通常我会创建一个名为MyProject的{​​{1}}分支,并在那里检查我的所有更改,直到它准备好与master合并为止。我还想为NewFeature创建一个分支,以便任何架构更改都与Data分开,直到我的更改准备合并为止。

什么是正确的工作流程,还是有一个?

谢谢!

1 个答案:

答案 0 :(得分:2)

子模块中的分支与父仓库中的分支完全分开。

在父仓库上创建NewFeature要素分支并不意味着您必须在子模块中创建相同的分支。
它只表示您的父repo将引用NewFeature分支中该子模块的新提交。子模块提交可以在任何分支中进行(仅在子模块中定义)。

话虽如此,最好在subrepo中创建一个NewFeature,以建立某种命名约定,使您能够在父repo和子模块之间找到高度耦合的提交集。 /> (另外,如问题“Git submodules: Specify a branch/tag”中所示,子模块本身始终处于分离的HEAD模式中)