代码之家  ›  专栏  ›  技术社区  ›  noamtm

如何将“git:`urls”转换为“http:`urls”

  •  122
  • noamtm  · 技术社区  · 15 年前

    我正在开发一个HTTP代理。我正在尝试使用他们的“repo”工具克隆android的源代码树。

    这个工具坚持使用 git:// 尽管如此,URL http:// URL也可以工作。因此,我无法下载源文件。

    有可能强迫吗 git 永远使用 http ?

    编辑: 我的http_代理配置正确。例如,这是可行的:

    git clone http://android.git.kernel.org/platform/manifest.git
    

    但这不是(errno=连接超时):

    git clone git://android.git.kernel.org/platform/manifest.git
    

    所以 this answer 对我没什么帮助。

    4 回复  |  直到 7 年前
        1
  •  276
  •   Tobu    12 年前

    以下是重写GitHub默认协议的示例:

    git config --global url.https://github.com/.insteadOf git://github.com/
    
        2
  •  35
  •   Jakub Narębski adamtaub    15 年前

    我不知道这是怎么回事 repo 工具使用git(如果您可以将“repo”配置为使用HTTP协议),但您可以尝试使用 url.<base>.insteadOf 配置变量(参见 git-config git-fetch 手册)。

    你试过用吗 core.gitProxy 要通过防火墙,是否是使用Git协议的问题?

        3
  •  22
  •   Vadim Kotov First Zero    7 年前

    我在Git存储库中递归获取子模块时遇到了同样的问题。我在一个疯狂的防火墙后面,它不允许Git端口上的传出连接。子模块的一些子模块被编码为 git://github.com/blah/blah.git . 这杀死了我递归的子模块。解决方法如下:

    git config --global url."https://<GITUSERNAME>@".insteadOf git://
    

    这替代了 git:// 具有 https://<GITUSERNAME>@ 在所有子模块存储库URL中。你需要更换 <GITUSERNAME> 使用您自己的git用户名。还要注意, --global 是必需的;仅将此配置添加到基本存储库目录不起作用。

        4
  •  3
  •   Piper    8 年前

    您可以在中验证 ~/.gitconfig 如果您正在用https://覆盖ssh,或者反之亦然。