首页 > 解决方案 > Github 子模块自动分支切换

问题描述

我有:

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

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

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

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

标签: gitgit-submodules

解决方案


你想要达到的目标是不可能的。子模块总是检查某个提交,而不是一个分支,因此总是处于分离的 HEAD 状态。正如您所经历的那样,签出的提交可能由子模块的分支集决定。另请参阅此答案


推荐阅读