在浅存储库中获取特定提交失败

问题描述

我有一个子模块存储库的浅层克隆,其中所需的提交位于与 HEAD 提交无关的分支上。

git submodule update --init --depth 1

这适用于大多数子模块,但 HEAD 与所需提交历史无关的那些,它失败了: 当 git 尝试获取所需的提交时,它会给出错误error: Server does not allow request for unadvertised object

没有子模块也会出现同样的错误

git clone --depth 1 <url> prj
cd prj
git fetch origin <hash>
> error: Server does not allow request for unadvertised object

以下工作正常:

git clone <url> prj
cd prj
git checkout <hash>

任何想法,当浅层子模块有不相关的提交时,如何让它们工作? 由于我们使用了许多内部结构不同的子模块,因此对每个子模块进行手动处理是不可行的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)