在git submodule add
的{{3}}文档中,它显示存在--reference
参数。据推测,这与--reference
的{{1}}参数的工作方式相同,方法是从中复制对象,而不是远程存储库。使用此参数执行后,如果我查看git clone
内部,则会有一个.git/modules/<submodule>/objects/info
文件,其中包含引用存储库的路径。
但是,alternates
也有一个git submodule参数,基本上只对初始克隆执行此操作。对于子模块存储库,是否存在相同的方法?
答案 0 :(得分:0)
显然,执行此操作的唯一方法是在使用git repack -a -d
克隆子模块目录后运行--reference
。
我想未来的Git版本可能会为--dissociate
本身添加对git submodule {add,update}
的直接支持,但它在最新版本(2.15)中尚不存在。
答案 1 :(得分:0)
“git submodule update
”和“git submodule add
”支持从“--reference
”这样的邻近本地存储库中借用对象的“git clone
”选项,但缺少更多最近的发明“--dissociate
”。
Git 2.18(2018年第二季度)不再是这种情况
子模块:添加
--dissociate
选项以添加/更新命令添加
--dissociate
选项以添加和更新命令,这两个命令已经与--reference
选项--dissociate
成对的克隆辅助命令。
The documentation现在添加:
--dissociate::
此选项仅对
add
和update
命令有效 这些命令有时需要克隆远程存储库。在这种情况下,此选项将传递给git clone
命令。