我可以使用git代理配置从git:映射到https:?

时间:2018-02-14 16:44:12

标签: git

我有一个只能通过git访问的repo:来自某些机器,只能从https:来自其他人访问,我想设置一个引用它的子模块。我可以设置一个代理服务器吗?只是从一个映射到另一个?

2 个答案:

答案 0 :(得分:2)

我的建议是不要使用代理设置,请使用替代配置设置:

[url "git@mygiturl.com"]
    insteadOf = https://theother.git.url.com/

您可以在~/.gitconfig或每个系统中为每个用户设置此项,通常为/etc/gitconfig

答案 1 :(得分:0)

子模块URL可以相对于其超级项目。根据存储库的托管方式,可以使用此方法代替记录完整的子模块URL。来自the git submodule add documentation

  

<库>是新子模块的原始存储库的URL。这可以是绝对URL,或者(如果它以./或../开头),相对于超级项目的默认远程存储库的位置(请注意,指定一个位于超级项目旁边的存储库foo.git bar.git,你必须使用../foo.git而不是./foo.git - 正如人们在遵循相对URL规则时所期望的那样 - 因为Git中相对URL的评估与相对URL相同目录)。

当子模块添加到超级项目时,它将记录该相对URL而不是完整的URL。当有人然后递归克隆时,子模块将从同一个基本URL克隆。在您的情况下,使用git:网址克隆超级项目的人员也会使用git:个子网址作为子模块,使用https:网址进行克隆的用户也会使用https:个子网址作为子模块。