【问题标题】:How to pull submodules from a subtree repo?如何从子树仓库中提取子模块?
【发布时间】:2019-07-25 10:40:33
【问题描述】:

我想添加一个外部库作为子树。但是这个库包含一个子模块,我不知道如何获取它。

我通常通过添加遥控器手动添加子树并使用:

git read-tree --prefix=remote -u remote/master

有人处理过子树中的子模块吗?

谢谢

【问题讨论】:

  • 欢迎@Jil。我根本没有处理过它,但是您是否只是在根存储库中尝试过git submodule update --init --recursive?还是在子树上? (在一次性本地副本中测试以防万一)
  • @A.M.谢谢,是的,我试过了,我有这个奇怪的错误'No url found for submodule in .gitmodule',而 lib 的 .gitmodule 文件中有一个 url 及其路径
  • 在运行 git submodule update --init --recursive 之前,您是否将 cd 放入您的子树存储库?
  • @Cubimon 是的,我在子树和项目的根目录中进行了尝试。无论如何谢谢!

标签: git


【解决方案1】:

据我了解,该库在 树的顶部有文件 .gitmodules。当 lib 作为子树包含在超级项目中时,文件 .gitmodules 位于子树中,而 git 期望它位于存储库的顶部。

我可以想出一些解决问题的方法(符号链接、复制),但我对这种情况的建议是完全避免使用子树。无论如何,您都必须使用子模块,因为 lib 包含一个子模块,那么为什么不将 lib 设为子模块而不是子树呢?

【讨论】:

  • 是的,我认为这是问题所在。实际上,它可能与 .gitmodules 的符号链接(并且可能更改路径)一起使用,但它并不理想。我猜在使用子模块时不推荐使用子树。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-31
  • 1970-01-01
  • 2013-04-26
  • 2017-08-08
  • 2023-01-01
  • 2010-10-29
  • 2014-06-06
相关资源
最近更新 更多