我已经分叉了MapBox-ios-sdk并对其进行了一些更改。更新版的sdk就在这里,我将更改合并到了fork中。 MapBox-ios-sdk还包含SMCalloutView,它是MapBox-ios-sdk中的子模块。然而,官方sdk的版本使用了更新的,更新的SMCalloutView,它不在我的分支中。
如何更新
我使用here的说明更新了我的sdk。但是,这不会更新SMCalloutView。我也在MapBox-ios-sdk级别尝试了git submodule update --recursive
,没有任何反应。事实证明,这是因为SMCallOutView处于“无分支”状态。为什么它在“没有分支”?如何将所有子模块置于“无分支”状态之外?如果它处于“无分支”,那么我永远不知道子模块(或甚至更多嵌套)的哪个子模块或子模块需要更新。
答案 0 :(得分:18)
使用git 1.8.2+(2013年3月),您可以定义一个子模块,该子模块将反映给定分支的最新提交。
请参阅“git submodule tracking latest”。
这意味着将子模块更新到最新的分支就足够了:
# --remote will also fetch and ensure that
# the latest commit from the branch is used
git submodule update --remote
有关--remote
选项的更多信息,请参阅git repo commit 06b1ab。
回顾一下:
对于新的子模块(必须遵循分支):
git submodule add -b [branch] [URL] [DirectoryName]
对于您现在希望它遵循分支的现有子模块:
另请参阅git repo commit b92892,将git子模块转换为跟随分支的子模块
您所需要做的就是:
git config -f .gitmodules submodule.<path>.branch <branch>