ChatGPT解决这个技术问题 Extra ChatGPT

Git:在 git 中克隆远程存储库时无法解决主机 github.com 错误

我做了什么:我在 Github 上创建了一个远程存储库,我正在尝试在我的本地计算机上克隆远程存储库。克隆时,我提供了克隆 URL 和目标文件夹。

但是每次我尝试克隆时,我都会收到此错误:

错误:“致命:无法访问‘https://github.com/hyperion057/spring-repo.git/’:无法解析主机:github.com”

我需要做什么才能连接到 GitHub?

你在用什么命令?您是通过 https 还是 ssh 进行克隆?我只是试图克隆你的项目并且它有效。
我正在使用 git GUI,我正在通过 HTTPS 进行克隆。
打开终端并执行 git clone git@github.com:hyperion057/spring-repo.git
我需要配置代理设置吗?因为我的办公室有代理服务器。
你得到的错误基本上是告诉你它无法连接。您可能已将代理设置为浏览器,但没有设置在整台机器上。尝试相应地设置代理,然后重试。

B
Brian

我遇到了类似的错误,这是由不正确的代理设置引起的。这个命令救了我:

git config --global --unset http.proxy

https版本:

git config --global --unset https.proxy

即使您从未接触过代理设置并且当前不在代理设置后面,这也值得尝试。我认为这是在过去的酒店住宿期间(或使用机上 wifi 时)以某种方式自动设置的,其中有代理。
请注意,这只会取消设置 HTTP 代理。如果您在连接 HTTPS 位置时遇到困难,请使用姊妹命令 'git config --global --unset https.proxy'
这解决了我的问题。我从自制软件“致命:无法访问'github.com/caskroom/homebrew-cask':无法解析代理:wpad”中收到错误,这解决了它。
我从未接触过代理设置,没有更改任何我以前的工作设置,甚至从未使用过代理。但这是解决我的问题的方法。谢谢你。
太感谢了。你能告诉我为什么会出现这个问题吗?
V
VonC

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

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

请参阅“Syncing with 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 config 中注册它:

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% 中),更改服务器行:[proxy] server = proxy.my.company:8080 <= use your company proxy:port listen = 127.0.0.1 port = 3128

在没有您的凭据的情况下使用 HTTP(S) 代理变量! (px 代理将通过 Microsoft SSPI 或 Microsoft Kerberos 重用当前 Widows 会话中的那些)

这会给你:

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

这并不总是问题。请参阅下面的答案,但有时如果您的 mac 磁盘空间不足,您需要删除一些文件并重新启动终端。
是什么?
@Sara 使用企业代理时 Windows 会话的登录名/密码。
不清楚,请举一个关于设置http_proxy的例子。
@CătălinaSîrbu 哪一部分不清楚?我关于 http_proxy 的设置是使用此答案末尾的命令完成的。
C
Chris Fremgen

花了几个小时试图解决这个问题。

重新连接我的wifi就可以了。


大声笑,这也是我的问题。我在另一台计算机上打开了我的浏览器(否则它会耗尽我工作 Mac 的生命)。我正在另一台 PC 中寻找解决方案。没有注意到工作计算机已断开连接。
如果您连接到 VPN,其中一个技巧肯定是重新连接。非常感谢,这救了我的命。
除了多次打开和关闭wifi(在我的笔记本电脑上)之外,我没有做任何事情。在最后一次开/关后大约 40 秒后,问题解决了。
你让我免于重新启动系统和更改 1000 种配置
我的默认 DNS 提供商很糟糕,所以我通常设置 Google 进行 DNS 解析。 8.8.8.8 和 8.8.4.4
C
Chadams

另一种可能性,我自己遇到了这个问题。但那是在我安装了一个 VPN 之后(它不相关并且正在运行)

关闭VPN,解决问题。

作为记录,我在我的 MacBookPro 上运行“Viscosity”VPN


呵呵,对我来说,恰恰相反。 github.com 仅在我使用 VPN 时才解析。 :|
作为记录,这也适用于 Macbook Pro 上的 ExpressVPN
它是你的互联网问题
s
scosman

磁盘空间不足后,我遇到了同样的问题。关闭和重新打开终端修复了一次。接下来重新启动我的Mac。

在跳转到随机命令之前可以尝试一些简单的事情:

重新启动终端选项卡

重启终端应用

如果磁盘已满(或接近)释放一些磁盘空间,然后重新启动终端应用程序

重启机器/操作系统


我在 Mac 上体验过。重新启动我的终端修复了它。
在 debian 安装上也是如此。
重新启动我的 mac 工作,但看起来只是重新启动我的终端可能就足够了。我希望人们看到这一点,因为我进行了大约 20 分钟的迷你野鹅追逐,尝试了这个和其他帮助网站上的各种命令。
只需关闭终端选项卡也足够了。
我在 WSL2/Ubuntu 上遇到了这个问题,只有你的解决方案 - 重新启动操作系统(Windows) - 解决了这个问题。谢谢你。
R
Ruli

想指出,当我做布赖恩的解决方案时:

git config --global --unset http.proxy

确保退出并重新启动终端。直到我这样做,我的才解决。


请注意,reset 在这里对我不起作用:我必须完全终止我的终端会话。
我将 WSL 与 VS Code 一起使用,我不得不关闭所有内容并重新加载它。谢谢
D
Developer

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


当前 IP 地址在此处列出:api.github.com/meta(来自 help.github.com/articles/about-github-s-ip-addresses),这是将 CIDR 转换为 IP 范围的工具:ipaddressguide.com/cidr
d
d-man

从答案 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 命令进行测试。


在我第一次在新 SSD 上启动 Windows 10 的克隆后为我工作
R
Ruli

我通过使用此命令解决了它

$git config --global http.proxy http://enter_your_proxy:enter_port

y
yasi

可能是因为你上网的原因,你可以试试:

ping google.com

如果您再次收到此错误,则说明您的网络配置有问题。


j
johnwbyrd

就我而言,在 Windows 机器上,我的 TCP/IP 堆栈似乎需要重置。重置客户端 PC 的 TCP/IP 堆栈导致 git 再次开始正常运行。在命令提示符下以管理员模式运行此命令,然后重试 git 命令:

netsh int ip reset

通过控制面板手动禁用和重新启用网络适配器会产生类似的结果。

我怀疑我的 Windows 机器上的 TCP 堆栈中存在 DNS 解析问题。


C
Chris Yim

当您尝试上述解决方案但没有任何帮助时,您可能需要检查您的本地网络设置并尝试将 8.8.8.8 和您的本地路由器 IP 添加到 DNS 字段。


J
John Yin

我有这个非常相似的错误,如下所示。

C:\wamp\www\myrepository [master]> git push
fatal: unable to access 'https://github.com/myaccount/myrepository.git/': Couldn't resolve host 'github.com'

实际上,提示信息已经告诉我们哪里出了问题。

https://github.com/myaccount/myrepository.git/

当我检查我的 github 时,我发现我的 github 存储库的 HTTPS url 是

https://github.com/myaccount/myrepository.git

我不知道这是怎么发生的。安装的 Git Shell 自动设置了错误的 url。

一旦我删除了最后的“/”,我就可以成功推送。


嗨,约翰-您能否提供有关如何删除“/”的详细信息?我遇到了你上面描述的同样的问题。
你怎么修好它的?遇到同样的问题。
git remote -v 查看遥控器。 git remote set-url origin https://github.com/USERNAME/REPOSITORY.git 设置遥控器。
即使我有同样的问题。我没有看到带有 git remote -v 的“/”,但我在做 git push 时看到了。如何解决这个问题?
那么如何去掉多余的“/”呢?当我尝试 git clone 时,我得到了这个
C
Community

所有,我想让你们都知道我遇到了同样的问题。我通过重置我的远程 URL git remote set-url origin https://new.url.here 来解决它我从这个答案中找到了如何做到这一点,但我不得不将命中更改为 https:Change the URI (URL) for a remote Git repository


W
Wenderson Fernandes

以防万一后代也陷入困境:对我来说(在 mac OSX 上)有效的方法是使用 opendns 208.67.222.222、208.67.220.220 设置我的 DNS。我在这里得到这个数字:https://www.opendns.com。出于某种原因,我的 dns 配置重置为默认数字(我猜是我的本地 ip),我无法连接到 github、brew 或 rubygems。抱歉拼写错误。


s
saylestyler

这里的边缘情况,但我在 VirtualBox 上尝试了(几乎)上述所有答案,但什么也没做,但随后不仅关闭了 VirtualBoxVM,而且关闭了良好的 ole VirtualBox 本身并重新启动程序本身就成功了,没有 0 投诉。

希望可以帮助〜0.1%的查询者:)


认为 ctrl-F “虚拟”会发现这个......很高兴见到你的朋友 :-) 只是做了同样的修复——需要重新启动 VM 和 VB,然后一切都很好。想象一下,在虚拟机上的某些服务器代码中玩缓冲区溢出时出现了一些问题:P
t
tig

此问题的一个原因可能是错误/空的 /etc/resolv.conf 文件。

我在我的 centos 7 minimum 中解决这个问题的方法如下:我的 /etc/resolv.conf 是空的,我添加了以下几行:

nameserver 192.168.1.1
nameserver 0.0.0.0

其中 192.168.1.1 是我的网关,在您的情况下它可能会有所不同。


Z
Zack117

如果您有一个 VPN 需要连接到您的企业帐户并执行“git pull”,则会发生此错误,只需打开您的 VPN 即可。


J
James Z

重新启动后,下面的 git bash 对我来说很好:

git push -f origin master

m
muhammed safa yaşar

作为 Ubuntu 服务器的建议,您可以在 /etc/network/interfaces 文件中写下路由器的 essid 和密码:

iface [en0 || your wireless driver no necessarily en0] inet static
    address 192.168.1.100 / (something for your static ip between 1-255)
    netmask 255.255.255.0
    gateway 192.168.1.1 / (this is the ip of your router)
    dns-nameservers 8.8.8.8 / (you can use whatever you want)
    wpa-ssid qwertyuio / (this is router id)
    wpa-psk qwertyuio / (this is router password for wireless connection)

当我在将存储库拉到我的服务器时遇到此错误时,我编写了 wpa-ssidwpa-psk 并重新启动。然后它起作用了。

编辑:我又遇到了同样的问题,这次是因为路由器信号电平不一致。我的连接不牢固,这就是问题所在。但是,上面的解决方案是静态ip的真正解决方案


a
artronics

就我而言,我打开一个新终端并解决了问题。我不知道到底是什么导致了这个问题。


n
nurmdrafi

https://github.com/ 的 Chrome 开发工具清除空缓存并硬重新加载后,这对我有用。

打开您的 Chrome 开发工具并右键单击重新加载图标,然后您可以看到此选项。

https://i.stack.imgur.com/5cosW.png


j
joel

从 git clone remote 中删除额外的“/”的简单解决方案是将 url 放在括号中。 git克隆“”


E
Eric Aya

与所有这些解决方案不同,就我而言,我在重新启动终端(或打开另一个窗口)时解决了这个问题。


u
user3814933

在 Mac 中重新启动终端有效。


L
Laura Corssac

我想我的情况非常罕见,但 GitHub 已经失败了。检查他们的网页,看看它是否正确加载。

GitHub


E
Emin

通过 https 克隆 git 存储库时,我遇到了这个问题的不同版本:

fatal: unable to access 'https://GIT_USER:GIT_PASSWORD@github.com/organization/repo.git/': Could not resolve host: GIT_USER

问题是密码中有受限制的字符,需要进行 URL 编码。此外,如果您使用 2FA(两因素身份验证),则应使用个人访问令牌代替密码。

搜索上面的错误条件会在谷歌上产生这个页面,所以希望这个答案能节省一些人的时间。


r
radsdau

对于使用 TortoiseGit 的 Windows 用户,请参阅设置-网络,并直接在此处输入代理设置。我全年都必须做的最简单的修复。


u
user1994956

我在终端上运行命令,然后重新启动终端。

git config --global --unset https.proxy

但它不起作用。然后我在 Mac 上关闭并打开我的 wifi。

git push

有效。


P
Piyush

如果您的代理服务器没有用户名和密码 -

改成这样——

192.168.49.1:8282 - <your-proxy-ip>:<port>

git config ---global http.proxy 192.168.49.1:8282
git config ---global https.proxy 192.168.49.1:8282