【问题标题】:Pull git submodules after cloning project from GitHub从 GitHub 克隆项目后拉 git 子模块
【发布时间】:2022-04-29 17:50:49
【问题描述】:

我有一个项目,其中指定了子模块。一切都在开发机器上运行良好。我已提交.gitmodules 文件并开始制作。但是它不会拉取子模块。

如果我进入子模块目录并调用git pull,什么都不会发生。

在新项目中拉取这些子模块的正确方法是什么?

【问题讨论】:

    标签: git git-submodules


    【解决方案1】:

    从 repo 的根目录运行:

    git submodule update --init
    

    【讨论】:

    • 我相信这实际上会更新您的依赖项。我认为 S. Russel 在下面的评论中有正确的命令:git pull --recurse-submodules
    • @Spencer command git submodule update --init 在 git 版本 2.31.1 中工作正常;它克隆了所有子模块。
    【解决方案2】:

    如果您需要将子模块的内容提取到您的子模块存储库中,请使用

    git pull --recurse-submodules
    

    但这不会检查子模块中的正确提交(您的主存储库指向的提交)

    要检查子模块中的正确提交,您应该在使用后更新它们

    git submodule update --recursive
    

    【讨论】:

    • git submodule update --recursive 是我在第一次git cloneing 之后需要的,但第一次忘记--recursive。谢谢!
    • 这似乎对我不起作用。子模块保持为空。
    • @CodeMonkey 跟我一样。
    • 参加聚会可能为时已晚,但对于任何人都来到这里:git submodule update --init --recursive 解决我的问题
    • 只是 git submodule update --init 为我做的 - 不需要 --recursive。
    【解决方案3】:

    如果有嵌套的子模块,则需要使用:

    git submodule update --init --recursive
    

    【讨论】:

      【解决方案4】:

      我只想分享这些。

      第一种方式,

      git submodule init && git submodule update
      

      下面只是基本结合了第一种方式,

      git submodule update --init
      

      如果有任何嵌套的子模块,Iglesk's answer 是要走的路。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-14
        • 2016-11-30
        • 1970-01-01
        • 1970-01-01
        • 2015-08-04
        • 2021-01-28
        • 2021-03-01
        相关资源
        最近更新 更多