我有一个子模块存储库的浅层克隆,其中所需的提交位于与 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>
任何想法,当它们有不相关的提交时,如何让浅子模块工作?由于我们有许多具有不同内部结构的子模块,因此对每个子模块进行手动处理是不可行的。