如何从特定分支更新我的git子模块?

我有一个Ruby on Rails应用程序,它有两个git子模块。 我正在主应用程序和两个子模块中将Rails从v3升级到v4,因此我为每个子模块创建了一个rails4分支。 主应用程序和每个子模块都有自己独立运行的测试套件,因此我在子模块和项目中进行了升级,确保测试都在每个地方运行,现在我需要将子模块更新到项目中。

当我执行git submodule update时,如何告诉应用程序的rails4分支中的git从子模块的rails4分支git submodule update ? 可以对此进行临时修复,因为一旦应用程序确认正常工作并且分支全部合并到主服务器中,我可以将它们指回主服务器。 谢谢。

现在我需要将子模块更新到项目中。

父repo只记录SHA1(在特殊的gitlink条目中,模式160000 )

您可以在rails4分支中更新.gitmodules,以便让您的子模块签出/更新其rails4分支:请参阅“ Git子模块:为整个过程指定分支/标记 ”:它以以下内容开头:

 cd /path/to/your/parent/repo git config -f .gitmodules submodule..branch  

这将允许git submodule update --recursive --remote更新这些子模块中的rails4分支。