也许这是一个愚蠢的问题,但我似乎无法解决这个问题。
我有一个包含3个子模块的存储库,其中一个是子子模块。 这三个子模块都是GitHub上的第三方开源项目。
结构:
My Project
L SubmoduleA
L SubmoduleB
L SubmoduleC
如何在GitHub上将所有三个子模块更新为最新的可用提交(在主分支上)?
编辑:我当然不希望得到SubmoduleC
的最新提交,但是SubmoduleB
中引用的 。对SubmoduleB
的更新,这会发生很大变化。
答案 0 :(得分:0)
由于每个repo引用给定子模块的特定SHA1,因此您无法更新这些子模块而无需将它们推送到各自的repos以记录新的SHA1。
您需要控制他们的.gitmodules
文件,以便记录您希望这些子模块遵循某个分支的事实,您可以按照我在" Git submodules: Specify a branch/tag&#中的说明进行操作34。
如果那些repos和子模块以这种方式配置,那么一个简单的git submodule update --remote --recursive
会将所有子模块更新为各自的分支HEAD。
但是你可以控制这些子模块内容的唯一方法就是fork their repos并将你的项目引用作为子模块的子模块(你拥有的,你可以推回到的那些)。