首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Git克隆包含修改后的子模块的回购程序。

Git克隆包含修改后的子模块的回购程序。
EN

Stack Overflow用户
提问于 2022-10-12 15:59:07
回答 1查看 40关注 0票数 0

我有一个带有子模块的git,其中子模块进行了修改/提交,而这些修改/提交还没有被推送到它起源的远程。

我想用子模块克隆这个父回购,并保留修改,同时保持我试图克隆的git历史记录(这包括子模块中的修改)。

我尝试过git clone --recurse-submodules https://some.domain.ca/path/to/repo.git,但这会导致以下错误

代码语言:javascript
运行
复制
fatal: git upload-pack: not our ref 063e202da5c92a701892a121db16e5c66d661725
fatal: remote error: upload-pack: not our ref 063e202da5c92a701892a121db16e5c66d661725
Fetched in submodule path 'submodule-name', but it did not contain 063e202da5c92a701892a121db16e5c66d661725. Direct fetching of that commit failed.

我认为发生此错误是因为回购中的子模块的历史记录与其起源的远程模块的历史不匹配。

如何使用子模块及其未在子模块引用中表示的修改克隆回购?

EN

回答 1

Stack Overflow用户

发布于 2022-10-12 18:02:59

larsks的评论对于思考如何在子模块中引用所需的提交具有指导意义。

下面是使用修改后的子模块复制初始回购的步骤:

git clone https://some.domain.ca/path/to/repo.git

  • Modify git submodule update --init --recursive

  • Restore .gitmodules

中的url以引用源repo

  • 中的子模块运行git submodule update --init --recursive

  • Restore.gitmodules

这确实意味着子模块中的任何进一步修改对于其他克隆来说都是未知的,但是可以重复这些步骤来进行更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74044826

复制
相关文章

相似问题

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