gpt4 book ai didi

Git子模块新版本更新

转载 作者:太空狗 更新时间:2023-10-29 13:16:29 24 4
gpt4 key购买 nike

我 fork 了一个 MapBox-ios-sdk 并对其进行了一些更改。更新版本的 sdk 在这里,我将我的更改 merge 到我的分支中。 MapBox-ios-sdk 还 merge 了 SMCalloutView,它是 MapBox-ios-sdk 中的一个子模块。然而,官方 sdk 的版本使用更新的 SMCalloutView,它不在我的 fork 中。

如何让它更新

我使用 here 中的说明更新我的 SDK .但是,这不会更新 SMCalloutView。我还在 MapBox-ios-sdk 级别尝试了 git submodule update --recursive 但没有任何反应。事实证明这是因为 SMCallOutView 处于“无分支”。为什么它在“无分支”?如何使所有子模块脱离“无分支”状态?如果它处于“无分支”,那么我永远不知道哪个子模块或子模块(或更多嵌套)的子模块需要更新。

最佳答案

git 1.8.2+ (2013 年 3 月),您可以定义一个子模块,它将反射(reflect)给定分支的最新提交。
参见“git submodule tracking latest”。

这意味着这足以将子模块更新到分支的最新版本:

# --remote will also fetch and ensure that
# the latest commit from the branch is used
git submodule update --remote

参见 git repo commit 06b1ab有关 --remote 选项的更多信息。


回顾一下:

  • 对于新的子模块(必须跟在分支之后):

    git submodule add -b [branch] [URL] [DirectoryName]
  • 对于您现在希望它跟随分支的现有子模块:
    另见 git repo commit b92892 , 用于将 git 子模块转换为分支后的子模块。
    您需要做的就是:

    git config -f .gitmodules submodule.<path>.branch <branch>

    在“Git submodules: Specify a branch/tag”中查看更多内容

关于Git子模块新版本更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17194107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com