git clone --recurse-submodules记录子模块的绝对路径

时间:2018-07-14 16:36:52

标签: git git-submodules

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

1 个答案:

答案 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 中。