我有一个 git
repo 其中有另一个作为 submodule
依赖。在我项目的根目录中(.git
、.gitsubmodules
等所在的位置)我调用了
git submodule update
失败并显示以下消息:
Fetched in submodule path 'src/framework', but it did not contain cc8c38e9d853491c672452d8dbced4666fc73ec8. Direct fetching of that commit failed.
哪里src/framework
是我的项目 ( PROJECT_ROOT/src/framework
) 的一个子目录,应该是第三方 repo 所在的位置。给定的提交哈希是有效的。
我也试过git clone --recursive <my-repo>
但它也失败了。
我的.gitmodules
的内容是
[submodule "src/framework"]
path = src/framework
url = git@gitlab-blah-internal.de:gh/framework.git
除此之外,我还必须注意以下重要事实:由于最近更新了 framework
repo 我的代码中断,因此我真的需要检索它的特定版本,在那里一切正常。
最佳答案
克隆后运行此命令(并收到错误)解决了我的问题:
git submodule update --force --recursive --init --remote
当然这不是一个好的解决方案。最好找到并解决根本问题,但如果有人赶时间,这对我有用。
关于git - 为什么 git 无法为给定的提交获取特定的有效子模块以及如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42417294/