公司代理后如何通过 Git clone?

14
我在使用Windows 7电脑时,由于工作需要使用公司代理,想要在GitHub上克隆一些仓库、进行拉取、提交和推送。但我不知道代理的密码。
虽然我可以通过“下载ZIP”按钮定期下载仓库,但我想通过命令行或GitHub客户端应用程序使用GIT。
编辑:我试图克隆的存储库是一个私有存储库,而我是贡献者。收到以下消息:
*fatal: unable to access 'https:***.git/': Connection timed out after 300043 milliseconds*

如果您不知道密码,您想如何连接? - CodeWizard
我不知道为什么我可以定期下载ZIP文件,但无法克隆存储库。为什么会有这种差异? - giograno
有些答案你应该添加到问题中,确认仓库是否已将你添加为合作者(这意味着你的id_rsa.pub已经被批准)。你正在使用的仓库是私有的吗?当你执行git clone url.git时,会出现什么错误或者只是密码提示。请确认是否能够克隆其他仓库。 - Bijendra
4个回答

20

我不知道为什么我可以定期下载ZIP文件,但是无法克隆存储库。为什么会有这样的区别?

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

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

尝试按照以下答案描述设置SSH密钥此处

###摘要:

  • 如果您可以从Web下载文件,则表示您已连接到互联网。

  • 要设置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密钥并检查其是否有效。


1
首先,感谢您的回答。我按照您描述的方式设置了ssh密钥,但仍然无法工作。正如您所说,我不知道代理密码,因此无法配置代理。 - giograno
如果您不知道密码,那么您将无法使用命令行中的git,因为它需要互联网连接才能执行。 - CodeWizard

8
如果您不想设置全局代理,可能您只想通过代理访问特定的GitHub存储库,而不是那些托管在本地服务器上的存储库。
git clone --config http.proxy=http://proxy.local:3128 https://github.com/..../repo.git

如果您想为特定的存储库添加代理,而该存储库已经被克隆:

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

(将remote-name替换为您的远程名称,例如origin


3

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

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


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接