首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么git不能为给定的提交获取特定的有效子模块,以及如何修复它?

为什么git不能为给定的提交获取特定的有效子模块,以及如何修复它?
EN

Stack Overflow用户
提问于 2017-02-23 13:36:06
回答 10查看 64.1K关注 0票数 63

我有一个git回购,它有另一个submodule依赖项。在我的项目的根目录( .git.gitsubmodules等)中,我调用了

代码语言:javascript
运行
复制
git submodule update

以下消息失败:

获取子模块路径'src/framework',但它不包含cc8c38e9d853491c672452d8dbced4666fc73ec8。直接获取提交失败。

其中src/framework是我的项目(PROJECT_ROOT/src/framework)的子目录,应该是第三方回购的地方。给定的提交散列是有效的。

我也尝试过git clone --recursive <my-repo>,但也失败了。

我的.gitmodules的内容是

代码语言:javascript
运行
复制
[submodule "src/framework"]
        path = src/framework
        url = git@gitlab-blah-internal.de:gh/framework.git

此外,我还必须注意以下重要事实:由于framework回购系统最近的更新,我的代码中断了,因此我真的需要检索它的特定版本,在那里一切正常。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2017-02-23 20:29:53

是的,我可以在我的网页浏览器中跟踪链接(使用GitLab)。

但是,你能克隆那个回购吗?包括提交吗?

GitLab有限制访问的权限级别,因此确保使用正确的用户执行git克隆命令,并在所述user home directory/.ssh中使用ssh键执行。

如果您不能自己克隆子模块回购(在本地硬盘驱动器上的任何地方),这将解释错误信息。

问题来自于在我所使用的存储库中将头重新设置为提交之前将其链接为子模块的人。这使得引用无效。我不知道怎么解决这个问题

您可以使用确保子模块跟随一个分支 (例如,在这里,master):

代码语言:javascript
运行
复制
cd /path/to/parent/repo
git config -f .gitmodules submodule.bar1.branch master

然后在最后一次获取提交master时更新子模块

代码语言:javascript
运行
复制
git submodule update --remote

选项确保它不会使用超级项目的SHA-1记录来更新子模块,而是使用子模块的远程跟踪分支的状态。

这将避免"did not contain cc8c38e9d853491c672452d8dbced4666fc73ec8“错误消息。

德洛利添加了评论

--remote开关是我的钥匙。 这对我起了作用: git子模块更新--init --递归--远程

票数 48
EN

Stack Overflow用户

发布于 2019-06-16 17:51:27

在克隆(并接收错误)之后运行此命令解决了我的问题:

代码语言:javascript
运行
复制
git submodule update --force --recursive --init --remote

当然,这不是一个好的解决办法。最好是找到并解决潜在的问题,但如果有人匆忙,这是为我工作。

票数 78
EN

Stack Overflow用户

发布于 2020-06-05 14:15:28

我的例子是子模块的url已经改变了,并且它与父回购不同步。我们注意到我们可以克隆父库,并且子程序不会失败地初始化,但是存储库的这个特定实例失败了。

通过以下方式修正:

  1. 检查url在.gitmodules文件中是否正确
  2. 调用git submodule sync
  3. 调用git -C path/to/submodule fetch (如果子模块已经初始化)
  4. 调用git submodule update --init [--recursive] path/to/submodule (如果子模块已经完成)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42417294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档