【问题标题】:Git clone behind corporate proxy企业代理背后的 Git 克隆
【发布时间】:2016-01-25 08:28:25
【问题描述】:

我在公司代理后面工作,使用 Windows 7 电脑,我会使用 git hub,克隆一些 repo,进行拉取、提交和推送。

我不知道代理的密码。

我可以通过“下载 ZIP”按钮定期下载 repo,但我会通过命令行或 GitHub 客户端应用程序使用 GIT。

谢谢。

编辑

我要克隆的存储库是一个私有存储库,我是贡献者。

我收到以下消息:

*fatal: 无法访问 'https:***.git/': 连接在 300043 毫秒后超时*

【问题讨论】:

  • 不知道密码要如何连接?
  • 我不知道为什么我可以定期下载 ZIP 但我无法克隆 repo。为什么会有这种差异?
  • 一些您应该添加到问题中的答案,repo 是否已将您添加为合作者(意味着您的 id_rsa.pub 已获批准)。您正在使用的存储库是私有的吗?当您执行 git clone url.git 时,出现什么错误或只是密码提示。还可以通过克隆其他 repo 来确认

标签: git


【解决方案1】:

我不知道为什么我可以定期下载 ZIP 但我无法克隆 repo。为什么会有这种差异?

代理用于访问互联网(这意味着“走出”您的内部网络)。在您的情况下,您可以下载ZIP,但同时您无法从 GitHub 提取代码,看起来您没有正确的权限。

当您下载 ZIP 时,您只需连接到互联网并下载文件,而当您连接到 git 并尝试下载代码时,您需要使用任何 git protocols

尝试set up SSH key as described in the following answerhere

###总结:

  • 如果您可以从网上下载文件,则说明您有互联网连接。

  • 设置 git 代理配置:

      git config --global http.proxy http://user:pass@proxy.server.com:8080
      git config --global https.proxy http.proxy http://user:pass@proxy.server.com:8080
    

但在您的情况下,您不知道密码,因此您应该首先尝试设置 SSH 密钥并检查它是否有效。

【讨论】:

  • 首先,感谢您的回答。我已经按照您的描述设置了 ssh 密钥,但它不再起作用。正如你所说,我不知道代理密码,所以我无法配置代理。
  • 如果您不知道密码,那么您将无法从命令行使用 git,因为它需要互联网连接。
【解决方案2】:

鉴于简单下载有效,很可能您的计算机已为代理正确配置。您还需要确保代理配置在命令行上与 git 共享。这通常通过环境变量来完成,例如http_proxyhttps_proxy


当您单击“克隆或下载”以获取链接时,有两个选项可用。 它们是“使用 HTTPS 克隆”和“使用 SSH 克隆”。 要使用 SSH 密钥,您需要使用“使用 SSH 克隆”选项。

提供用于 SSH 的链接格式如下:git@github.***.com:***.git

所以要克隆存储库,您的命令将如下所示:

git clone git@github.***.com:***.git

另外,确保您已从 GitHub 网站正确复制链接。例如,以下来自 HTTPS 的直观翻译可能不起作用,并且可能会以类似于 OP 报告的超时错误进行响应:

git clone git://github.***.com/***.git ## wrong form

【讨论】:

    【解决方案3】:

    在运行常规 git 命令之前,只需使用以下命令设置代理即可。

    git config --global http.proxy http://user:pass@proxy.server.com:8080

    【讨论】:

      【解决方案4】:

      如果您不想设置全局代理,也许您只想通过代理访问某些 GitHub 存储库,而不是托管在本地服务器上的那些。

      git clone --config http.proxy=http://proxy.local:3128 https://github.com/..../repo.git
      

      如果你想为一个特定的 repo 添加一个代理,在它已经被克隆之后:

      git config --add remote.[remote-name].proxy http://proxy.local:3128
      

      (将remote-name替换为您的遥控器名称,例如origin

      【讨论】:

        猜你喜欢
        • 2015-11-18
        • 2012-02-19
        • 2015-12-25
        • 2015-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多