Git:克隆远程存储库时出现“无法解析主机github.com”错误

307
我做了什么:我在Github上创建了远程存储库,并尝试在本地计算机上克隆远程存储库。在克隆时,我提供了克隆URL和目标文件夹。
但每次我尝试克隆时,都会出现以下错误:
错误:“致命错误:无法访问'https://github.com/hyperion057/spring-repo.git/':无法解析主机:github.com”
我需要怎么做才能连接到GitHub?

1
你正在使用哪个命令?你是通过https还是ssh来进行克隆的?我刚尝试克隆了你的项目,它成功了。 - Raul Rene
我正在使用Git GUI,并通过HTTPS进行克隆。 - HyperioN
1
打开终端并执行 git clone git@github.com:hyperion057/spring-repo.git - Raul Rene
2
我需要配置代理设置吗?因为我的办公室有代理服务器。 - HyperioN
4
您正在收到的错误基本上是告诉您它无法连接。您可能已经将代理设置为浏览器,但尚未在整个计算机上设置。请尝试相应地设置代理并重试。 - Raul Rene
显示剩余3条评论
43个回答

384

我遇到了类似的错误,原因是代理设置不正确。以下命令解决了我的问题:

git config --global --unset http.proxy

https版本:

git config --global --unset https.proxy

23
即使您从未接触过代理设置,也没有目前使用代理,这也值得一试。我认为这可能是在过去的酒店住宿期间(或使用飞行中Wi-Fi时)自动设置的代理。请尝试以下操作。 - Shawn Erquhart
9
请注意,这将仅取消设置HTTP代理。如果您无法连接到HTTPS位置,请使用姊妹命令“git config --global --unset https.proxy”。 - degs
1
这解决了我的问题。我从homebrew收到一个错误“fatal: unable to access 'https://github.com/caskroom/homebrew-cask/': Could not resolve proxy: wpad”,现在已得到解决。 - amatusko
2
非常感谢。您能告诉我为什么会出现这个问题吗? - Aman Tandon
1
我的问题是...为什么会发生这种情况? - Sonhja
显示剩余6条评论

221

花了几个小时尝试修复这个问题。

重新连接我的wifi解决了这个问题。


7
哈哈,这也是我的问题。我在另一台电脑上开着浏览器(否则会占用我的工作Mac的性能)。我在另一台电脑上寻找解决方案,没有注意到工作电脑已经断开连接了。请问需要翻译其他内容吗? - Nitin Nain
2
如果您已连接到 VPN,其中一个技巧肯定是重新连接。非常感谢,这拯救了我的生命。 - Sachidananda Naik
你救了我不用重新启动系统和更改成千上万的配置。 - iAmLearning
1
我的默认DNS提供商很糟糕,所以我通常设置Google进行DNS解析。8.8.8.8和8.8.4.4。 - Roberto Decurnex
我简直不敢相信这个方法解决了我的问题,真是太傻了。非常感谢。 - Arbaaz Ali
显示剩余10条评论

125

我的办公室有代理服务器,我需要配置代理设置吗?

是的,您可以通过设置HTTP_PROXYHTTPS_PROXY环境变量来实现。

参见“与github同步”:

set HTTPS_PROXY=http://<login_internet>:<password_internet>@aproxy:aport
set HTTP_PROXY=http://<login_internet>:<password_internet>@aproxy:aport
set NO_PROXY=localhost,my.company

(为了避免在代理URL中明文输入您的凭据--用户名/密码--请参见下文)

请注意NO_PROXY,允许访问公司内部网站

您还可以在git配置中注册:

git config --global http.proxy http://<login_internet>:<password_internet>@aproxy:aport

但如果你的代理 Git 设置有误,需将其移除:

cd /path/to/repo
git config --unset http.proxy
git config --global --unset http.proxy
git config --system --unset http.proxy

git config --unset https.proxy
git config --global --unset https.proxy
git config --system --unset https.proxy

# double-check with:
git config -l --show-origin | grep -i proxy

无需凭据:使用genotrance/px
如果您与我一样在一个NTLM代理公司中,您需要做的就是:

  • px-v0.4.0.zip 解压到任何位置
  • 更改px.ini配置文件(放在%USERPROFILE%中),更改server行:
[proxy]
server = proxy.my.company:8080  <= use your company proxy:port
listen = 127.0.0.1
port = 3128
  • 使用HTTP(S)代理变量而不使用您的凭据!(px代理将重复使用当前Windows会话中的凭据,通过Microsoft SSPIMicrosoft Kerberos)
  • 这将为您提供:

    set HTTPS_PROXY=http://127.0.0.1:3128
    set HTTP_PROXY=http://127.0.0.1:3128
    set NO_PROXY=localhost,my.company
    

    2
    这并不总是问题所在。请看下面我的回答,但有时如果你的Mac磁盘空间不足,你需要删除一些文件并重新启动终端。 - scosman
    什么是<login_internet>和<password_internet>? - Sara
    @Sara 当您使用企业代理时,您的Windows会话登录/密码。 - VonC
    不太清楚,请举个例子说明如何设置 http_proxy。 - Cătălina Sîrbu
    @CătălinaSîrbu 不清楚的部分是什么?关于http_proxy的设置是通过本答案末尾的命令完成的。 - VonC

    56
    另一个可能性是,我自己也遇到了这个问题。但是这是在我安装VPN(与此无关且正在运行)之后发生的。
    关闭VPN即可解决这个问题。
    记录一下,我在我的MacBookPro上运行了“Viscosity” VPN。

    1
    对我来说恰恰相反,只有在使用 VPN 时才能访问 github.com。 :| - Surpher
    记录一下,这也是在Macbook Pro上使用ExpressVPN。 - Joel
    这是你的网络问题。 - Udesh

    48

    我想指出,当我尝试了Brian的解决方案时:

    git config --global --unset http.proxy
    

    请务必退出并重新启动终端。在我这里,直到我这样做之前问题才得以解决。


    1
    请注意,reset 在这里没有起作用:我不得不完全终止我的终端会话。 - Salem
    我正在使用WSL和VS Code,我不得不关闭所有内容并重新加载它。谢谢。 - Second2None

    43

    在磁盘空间用尽后,我遇到了同样的问题。有一次关闭并重新打开终端就解决了问题,下一次则是重启Mac电脑。

    在尝试随机命令之前,可以尝试一些简单的操作:

    • 重启终端选项卡
    • 重启终端应用程序
    • 如果磁盘已满(或接近饱和),请释放一些磁盘空间,然后重新启动终端应用程序
    • 重启机器/操作系统

    15
    我在Mac上遇到了这个问题。重新启动我的终端解决了它。 - Sasha Vodnik
    2
    在Debian安装上也是一样的。 - MikeiLL
    2
    重新启动我的Mac电脑解决了问题,但似乎只是重新启动终端就足够了。希望大家能看到这个信息,因为我在这个和其他帮助网站上尝试了各种命令,浪费了大约20分钟时间。 - Jacob Crofts
    1
    仅仅关闭一个终端选项卡也是足够的。 - mwil.me
    2
    我在WSL2 / Ubuntu上遇到了这个问题,只有您的解决方案 - 重新启动操作系统(Windows) - 解决了这个问题。谢谢。 - siruku6

    23

    192.30.252.128是github.com的当前IP地址,可以在本地DNS(/etc/hosts 在Linux和C:\Windows\System32\drivers\etc\hosts)中进行设置。


    1
    当前IP地址在此处列出:https://api.github.com/meta(来自https://help.github.com/articles/about-github-s-ip-addresses/),这里有一个将CIDR转换为IP范围的工具:https://www.ipaddressguide.com/cidr - Ashutosh Jindal

    12
    从这个答案here,我的解决方案适用于Windows Subsystem for Linux (WSL)用户。与我的解决方案无关的代理相关答案都不相关。
    如果您无法运行ping命令,例如:
    # WSL
    ping google.com
    

    那么你的/etc/resolve.conf文件很可能损坏了。要解决这个问题,请在WSL窗口中运行以下命令:

    # WSL
    sudo rm /etc/resolve.conf
    

    然后以管理员模式打开PowerShell终端并运行

    # Powershell
    wsl --shutdown
    Get-Service LxssManager | Restart-Service
    

    这应该会修复问题,可以通过再次运行ping命令进行测试。


    在新的固态硬盘上克隆了我的 Windows 10 后,第一次启动后它对我有用。 - S.aad
    谢谢你!如果没有你,我会陷得更久。 - joegl

    10
    我使用了这个命令来解决问题。
    $git config --global http.proxy http://enter_your_proxy:enter_port
    

    8

    可能是由于您的互联网访问出现问题,您可以尝试以下方法:

    ping google.com
    

    如果您再次遇到此错误,那么您的网络配置存在问题。

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