我目前正在研究位于美国的这个超级主机(带子模块的git仓库),大约需要40分钟才能完成克隆。 需要创建该repo的本地镜像以减少克隆时间。 子模块的路径与supergit相关,并且有多个分支,其中一些分支具有比其他分支更多的子模块。
我创建了一个脚本来解析所有子模块及其相对路径,并将每个子模块克隆到正确的位置,但这只适用于一个分支(我必须为每个分支重复此操作,而这是我被卡住的地方)。
有没有办法以干净的方式克隆这个超级目标?
答案 0 :(得分:0)
既然你可以解析一个.gitmodules文件,那么唯一剩下的就是找到它们:
# collect all .gitmodules definitions into one file
git rev-list --all --full-history --reverse -- .gitmodules \
| sort -u \
| sed s/$/:.gitmodules/ \
| git cat-file --batch \
| sed /^[0-9a-f]/d \
> gitmodules-aggregate
# format as executable commands to build a dedup'd one:
git config -lf gitmodules-aggregate | sort -u \
| sed "
s/=/ /
s/'/'\\''/g
s/ / '/
s/$/'/
s,^,git config -f gitmodules-consolidated ,
"
检查上游是否在不同的提交中给出了不同的定义。