如何将`git:`url转换为`http:`url
我正在工作在一个http代理。 我试图用他们的“回购”工具来克隆Android的源代码树。
这个工具坚持使用git://
url,即使http://
url也可以。 因此,我无法下载源代码。
有没有可能强制git
始终使用http
?
编辑:我的http_proxyconfiguration正确。 例如,这工作:
git clone http://android.git.kernel.org/platform/manifest.git
但是这不(errno =连接超时):
git clone git://android.git.kernel.org/platform/manifest.git
所以这个答案并不能真正帮助我。
下面是一个重写GitHub默认协议的例子:
git config --global url.https://github.com/.insteadOf git://github.com/
我不知道这个回购工具如何使用Git(如果你可以configuration'repo'来使用http协议),但你可以尝试使用url.<base>.insteadOf
欺骗它url.<base>.insteadOf
configurationvariables(请参阅git-config和git -fetch manpages)。
您是否尝试过使用core.gitProxy
来通过防火墙,如果它是使用git协议的问题?
我在recursion获取git仓库中的子模块时遇到了同样的问题。 我背后是一个疯狂的防火墙,不允许在git端口上传出连接。 子模块的一些子模块被编码为git://github.com/blah/blah.git
。 这使我的recursion子模块的人口死亡。 解决方法如下:
git config --global url."https://<GITUSERNAME>@".insteadOf git://
这将在所有子模块存储库URL中用https://<GITUSERNAME>@
replacegit://
。 您需要用您自己的git用户名replace<GITUSERNAME>
。 还要注意 – – --global
是必需的; 只是将此configuration添加到基本存储库目录不起作用。
如果您使用https://覆盖SSH,则可以在~/.gitconfig
进行validation,反之亦然。