git clone --recurse-submodules
正在记录子模块的绝对路径。
也就是说,当我克隆父目录时,每个子模块的.git文件夹中的gitdir
值正在记录子模块的绝对路径,这使我无法移动新克隆的目录没有所有子模块都无法使用。
在原始存储库中,我首先将子模块制作为.git文件,如下所示:
gitdir: ../../.git/modules/data/scta-codices
,但是使用以下命令克隆到新目录后 git clone --recurse-submodules git@github.com:scta / scta-rdf.git .git文件看起来像:
gitdir: /Users/username/Desktop/scta-rdf/.git/modules/data/scta-projectfiles
有什么问题的想法吗?
.gitmodules文件在父目录中的外观如下:
[submodule "data/scta-projectfiles"]
path = data/scta-projectfiles
url = https://github.com/scta/scta-projectfiles
branch = master
[submodule "data/scta-codices"]
path = data/scta-codices
url = https://github.com/scta/scta-codices
branch = master
[submodule "data/scta-quotations"]
path = data/scta-quotations
url = https://github.com/scta/scta-quotations
branch = master
[submodule "data/lombardpress-lists"]
path = data/lombardpress-lists
url = https://github.com/lombardpress/lombardpress-lists
branch = master
[submodule "data/scta-rdf-schema"]
path = data/scta-rdf-schema
url = https://github.com/scta/scta-rdf-schema
branch = master
[submodule "data/scta-people"]
path = data/scta-people
url = https://github.com/scta/scta-people
branch = master
答案 0 :(得分:0)
这实际上是 fixed in Git v2.8.3,于 2016 年 5 月发布。虽然提交消息可能看起来不像,并且也没有发布说明条目,但这是实际的修复(我通过将 git 与本身)。
另见mailing list discussion which led to the fix of this bug。
例如,有问题的 Git 版本仍然存在于 Ubuntu 16.04 LTS 中。