我刚刚开始学习 git 并尝试运行此命令:
git clone git://github.com/schacon/ticgit.git
Run Code Online (Sandbox Code Playgroud)
它不起作用,我收到此错误消息
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
Run Code Online (Sandbox Code Playgroud)
有没有人可以帮我解决这个问题?提前致谢!
编辑 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 :::*
-
Run Code Online (Sandbox Code Playgroud)
运行git clone http://github.com/schacon/ticgit.git
代替。
也就是说,替换git://
为http://
。这应该有效。
对于加密连接——这通常是一件好事,因为您收到的数据可能无法在传输过程中被任何恶意第三方修改——您可以尝试使用https://
. 感谢 Mitch指出这一点。这对我有用,但速度要慢得多(花了将近半分钟而不是不到两秒)。你的旅费可能会改变。
解释如下......(但如果你愿意,你可以停止阅读这里并使用该命令。)
在我的 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
Run Code Online (Sandbox Code Playgroud)
即使那不是 Git 服务器,您也不应该“连接被拒绝”。如果当您再次尝试得到同样的错误,东西阻止您连接到该服务器的能力。如果可能,我建议咨询您的网络管理员。毕竟,理想情况下您应该能够访问该服务器。大多数网络管理员可能不会在您访问 Git 存储库时遇到问题。
对于处于您这种情况的人,以及其他只能通过 HTTP 访问的人(例如,只能通过 HTTP 代理访问 Internet 的人),Git 提供了使用 HTTP(即,通过 Web)访问存储库的能力!
我并不是说你会浏览网页来克隆存储库。该git
命令本身能够通过 HTTP 进行连接,作为使用 Git 自己的应用层协议的替代方法。
要做到这一点,替代git://
与http://
中给予的URLgit
命令。
从您作为用户的角度来看,这完全相同。您可能会注意到的唯一区别(除了这种方式应该有效!)是它可能更慢,因为与 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
Run Code Online (Sandbox Code Playgroud)
我也这样做了git://
并得到了相同的结果。HTTP 访问适用于此存储库。
如上所述,https://
对我来说也很好用,但速度要慢得多。但我认为很多时间可能都在协商连接上——我不认为它一定会比http://
大型存储库慢得多。
归档时间: |
|
查看次数: |
19015 次 |
最近记录: |