问题:
有没有一种方法可以通过与主存储库相同的方法(ssh或https)自动检出git子模块?
背景:
我们有一个非公共gitlab存储库(main
),它具有一个子模块(utils
),该子模块也作为非公共gitlab存储库托管在同一服务器上。这些存储库可以通过ssh或https访问:
user@gitlabserver.com:my/path/repo.git
https://gitlabserver.com/my/path/repo.git
显然,这两种变体都需要不同形式的身份验证,并且取决于客户端计算机和用户,一个或另一个是首选。
对于顶级存储库(main
)来说,这不是问题,因为任何人都可以选择他或她喜欢的方法,但是对于子模块,这取决于.gitmodules
文件,因此(最初)对于所有文件都是相同的。
现在,不必所有人都根据自己喜欢的方式调整.gitmodules文件,并确保他们不会意外提交这些更改,那就很好了,如果有一种方法可以只指定服务器和存储库路径,而git选择用于主仓库的相同方法,或者可以在gitconfig中设置的方法。
git submodule foreach git submodule update
或类似。我没有时间写一个正确的答案,但我希望这会有所帮助。