Git 克隆错误

Git 克隆错误

我刚刚开始学习 git 并尝试运行这个命令:

git clone git://github.com/schacon/ticgit.git

它不起作用,我收到此错误消息

gwapps@gwapps-ThinkPad-X61:/home/gitRepo$ sudo git clone git://github.com/schacon/ticgit.git
Cloning into 'ticgit'...
fatal: unable to connect to github.com:
github.com[0: 204.232.175.90]: errno=Connection refused

有谁能帮我解决这个问题?提前谢谢了!

编辑 netstat -tulpn 的输出

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      -               
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -               
udp        0      0 10.20.2.160:123         0.0.0.0:*                           -               
udp        0      0 127.0.0.1:123           0.0.0.0:*                           -               
udp        0      0 0.0.0.0:123             0.0.0.0:*                           -               
udp        0      0 0.0.0.0:44048           0.0.0.0:*                           -               
udp        0      0 127.0.1.1:53            0.0.0.0:*                           -               
udp6       0      0 fe80::216:d3ff:fec4:123 :::*                                -               
udp6       0      0 ::1:123                 :::*                                -               
udp6       0      0 :::123                  :::*                                -               
udp6       0      0 :::58657                :::*     

                       -       

答案1

改为跑步git clone http://github.com/schacon/ticgit.git

也就是说,git://用替换http://。这应该可行。

对于加密连接 - 这通常是一件好事,因为您收到的数据可能不会被任何恶意的第三方在传输过程中修改 - 您可以尝试使用https://感谢 Mitch指出这一点对我来说,这个方法有效,尽管速度慢了不少(花了将近半分钟,而不是不到两秒)。您的情况可能会有所不同。

解释如下...(但如果您愿意,您可以停止阅读并直接使用该命令。)

您的公司(或学校)网络可能阻止您访问 Git 服务器。

在我的 Internet 连接上,我检查了 IP 地址 204.232.175.90 是否有服务器在端口 9418 上接受传入连接。(毕竟,这就是必须做的事,而不是做什么必须这样做。)确实如此,尽管当时(即在我自己尝试克隆 repo 之前)我并不清楚在那个端口上运行的是否实际上是 Git 服务器:

ek@Kip:~$ sudo nmap -sS -sV -p9418 204.232.175.90
[sudo] password for ek:

Starting Nmap 6.00 ( http://nmap.org ) at 2013-08-16 09:25 EDT
Nmap scan report for github.com (204.232.175.90)
Host is up (0.046s latency).
PORT     STATE SERVICE VERSION
9418/tcp open  domain  ISC BIND   Email support

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.82 seconds

即使那不是 Git 服务器,你仍然不应该收到“连接被拒绝”的错误。如果你再次尝试时收到相同的错误,某物阻止您连接到该服务器。如果可能,我建议您咨询您的网络管理员。毕竟,应该理想情况下能够访问该服务器。大多数网络管理员可能不会介意您访问 Git 存储库。

不过,有一个简单的解决方法。

对于您这种情况的人,以及其他只能通过 HTTP 访问的情况(例如,只能通过 HTTP 代理访问互联网的人),Git 提供了使用 HTTP(即通过 Web)访问存储库的功能!

意味着您将浏览网页来克隆存储库。该git命令本身能够通过 HTTP 进行连接,作为使用 Git 自己的应用层协议的替代方法。

为此,请在给定命令的 URL 中替换git://为。http://git

从用户的角度来看,这完全一样。你可能注意到的唯一区别(除了这种方式应该有效!)是它可能慢点,因为与 Git 自己的协议相比,HTTP 不太适合访问 Git 存储库。

随着时间的推移,或者对于大型存储库而言,这可能是一个问题。这就是为什么我建议联系您的网络管理员。但在这种情况下,应该没有问题;存储库看起来很小。(即使它很大,增加等待时间有时也是可以接受的。当你必须每天多次传输大量数据时,这可能会成为你的工作流程的负担。)

Git 服务器是可能的不是提供 HTTP 访问,但实际上这种情况很少见,并且我已经测试过这个,它确实提供了它,并且我能够克隆存储库

ek@Kip:~/src$ git clone http://github.com/schacon/ticgit.git
Cloning into 'ticgit'...
remote: Counting objects: 1857, done.
remote: Compressing objects: 100% (1022/1022), done.
remote: Total 1857 (delta 781), reused 1787 (delta 735)
Receiving objects: 100% (1857/1857), 374.78 KiB | 702 KiB/s, done.
Resolving deltas: 100% (781/781), done.
ek@Kip:~/src$ ls ticgit                # you don't have to run this
bin       lib          LICENSE_MIT  Rakefile    spec               TODO
examples  LICENSE_GPL  note         README.mkd  ticgit-ng.gemspec
ek@Kip:~/src$ du -sh ticgit            # you don't have to run this
844K    ticgit

我也这样做了,git://并得到了相同的结果。HTTP 访问此存储库工作正常。

如上所述,https://对我来说也运行良好,尽管速度要慢得多。但我认为很多时间可能都花在了协商连接上——我不认为它一定会比http://大型存储库慢得多。

答案2

这对我有用。

git config --global url."https://github.com/".insteadOf git://github.com/

答案3

看起来您可能遇到了网络问题。git 协议默认使用端口 9418,因此请确保该端口是开放的,并且没有被防火墙阻止。

相关内容