Github子模块自动分支开关

时间:2019-01-10 12:54:56

标签: git git-submodules

我有:

  • 我们称为“ MAIN”的主存储库
  • 我们称为“ SUB”的子模块存储库
  • 在MAIN中,我将SUB添加为子模块
  • 两个仓库都在master分支中

现在我需要做的是在MAIN和SUB中都创建一个分支,这样当我在MAIN上的该分支上时,我也可以在SUB中切换到特定分支。似乎不可能。

我所做的是我在SUB中创建了一个分支(称为branch_sub)并推送了新分支。 现在,在MAIN中,我在MAIN中创建了另一个分支(称为branch_main),并修改了.gitmodule和.git / config,将branch_sub设置为“ branch”字段,以便子模块应指向该特定分支科。将提交推送到MAIN的分支中。

现在,如果我执行git submodule update,则SUB将返回master分支并返回原始提交。为什么?这是非常愚蠢的imo。 如果我手动切换到branch_sub,然后在MAIN git submodule update --remote中执行,则SUB停留在正确的提交上,但是处于分离的HEAD而不是分支branch_sub :(中。

有提示吗?我可能需要做些什么?对我来说,这似乎很基础,但是git子模块似乎并不容易支持它。

1 个答案:

答案 0 :(得分:0)

您想实现的目标是不可能的。子模块总是签出某个提交,而不是分支,因此总是处于分离的HEAD状态。如您所经历的那样,签出的提交可能由子模块的分支集确定。另请参见this answer