【问题标题】:git submodule not pulling files in submodulesgit子模块不提取子模块中的文件
【发布时间】:2012-04-20 16:37:44
【问题描述】:

我以为我已经通过这个新项目解决了所有问题,并认为 git 子模块是开发和部署我的应用程序的方式。

设置我的 git repo (Drupal) 并使用 Drupal 的 7.12 标签对其进行初始化。做了我自己的分支。然后在 sites/all/modules/contrib 下添加所需的模块 git submodule add --branch 7.x git://path/to/drupal/module sites/all/modules/contrib/module

然后我想,通过将我的 repo 推送到 github,我可以简单地拉取它,然后它将所有子模块拉入部署路径。但是,即使我这样做,我的所有模块都不会被拉出: git 子模块 foreach git pull 要么 git子模块初始化 其次是 git 子模块更新

事实证明,我错了。我现在需要以另一种方式重做所有事情吗?如果是,请告诉我如何,如果不是,很好,请告诉我。

【问题讨论】:

    标签: git file pull git-submodules


    【解决方案1】:

    您分叉了 Drupal 存储库? .gitmodules 中是否已经添加了子模块?如果是这样,您只需要克隆他们的分支并执行

    git submodule init
    git submodule update
    

    您不需要将自己的子模块重新添加到 repo 中。

    现在如果你想添加额外的子模块,你必须在每次克隆 repo 时执行git submodule init; git submodule update。它不会自动获取子模块。

    【讨论】:

    • 运行“git submodule init”和“git submodule update”对我有用。我不知道当你克隆 repo 时 git 不会自动拉取子模块。
    • 考虑方便,可以做一个别名命令:alias gitup='git submodule init && git submodule update'
    • 请考虑删除您对子模块不值得的评论,或者可能链接到一两个来源。感谢您的回答。
    • @DanRosenstark 同意,将删除。自从我写这篇文章以来,子模块发生了巨大的变化。如果您有权限随时编辑我的答案并且不接受,请删除此评论。
    • 删除了“从我所读到的关于子模块的所有内容中,它们是不值得的。它们会导致太多问题。”
    【解决方案2】:

    如果子模块没有被拉取,请确保您已添加。

    例如:

    git 子模块添加https://github.com/chaconinc/DbConnector

    我遇到了同样的问题,运行上述命令后它工作了。

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 2012-06-06
      • 2015-04-24
      • 1970-01-01
      • 2018-03-13
      • 2019-07-08
      • 2015-03-22
      • 2014-09-30
      相关资源
      最近更新 更多