【发布时间】:2021-07-23 02:33:27
【问题描述】:
我有一个 git 子模块:
$ cd zathura
$ git remote get-url origin
ssh://git@github.com/pwmt/zathura.git
$ cd ..
但是在.git/config里面
[submodule "zathura"]
url = https://github.com/pwmt/zathura.git
在.gitmodules里面
[submodule "zathura"]
path = zathura
url = https://github.com/pwmt/zathura.git
ignore = dirty
问题
为什么远程 url 不一致(https 和 ssh 的混合)? 这是有效的吗?还是因为我可能犯了一些错误?如何获得一致的远程 url 以及 git 使用哪个 url?
【问题讨论】:
-
您在初始化子模块时是否设置了
insteadOf? (我不确定这是否会重写 in-.git/config条目。)您最初是如何初始化子模块的?无论如何,这里没有什么根本错误:.gitmodules行只是git submodule init的说明,以防没有更详细的信息;.git/config条目由git submodule init设置;并且遥控器的 URL 是实际使用的 URL,由初始的git clone配置,之后随时可以调整。 -
我使用
git submodule add --force --name "${RepositoryName}" "${Url}" "${RepositoryPath}"进行了初始化。是的,我用过insteadOf。因此,当使用insteadOf时,Url 不会反映在.gitmodules和.git/config中? -
正如我所说,我不确定
insteadOf是否会在实例化时导致重写。不过,您可以轻松地对此进行测试。
标签: git url ssh git-submodules git-remote