Я только что начал узнавать, что мерзавец и я пытались выполнить эту команду:
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 :::*
-
Вместо этого запустите git clone http://github.com/schacon/ticgit.git
.
То есть заменить git://
на http://
. Это должно сработать.
Для зашифрованного соединения - что, как правило, хорошо, потому что данные, которые вы получаете, вероятно, не может быть изменено в пути какой-либо злонамеренной третьей стороной - вы можете попробовать использовать https://
. Спасибо Митчу за , который указал на это . Это сработало для меня, хотя это было значительно медленнее (это заняло почти полминуты, а не меньше двух секунд). Ваш пробег может отличаться.
Объяснение следует ... (Но если вы хотите, вы можете перестать читать здесь и просто использовать эту команду.)
На моем интернет-соединении я проверил, есть ли у IP-адреса 204.232.175.90 сервер, принимающий входящие соединения через порт 9418. (В конце концов, это то, что он должен делать, , а не что вы должны сделать.) Это происходит, хотя в то время (т. е. до того, как я сам попытался клонировать репозиторий) мне не было ясно, является ли то, что работает на этом порту, на самом деле сервером Git: [ 1130]
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.
Для этого замените git://
на http://
в URL-адресе, указанном для команды git
.
С вашей точки зрения, как пользователя, это работает точно так же. Единственное отличие, которое вы можете заметить (кроме того, что этот способ должен работать!) Заключается в том, что он может быть медленнее , поскольку HTTP менее подходит для доступа к репозиториям Git, чем собственный протокол Git.
1136 Это может быть проблемой со временем или для огромных репозиториев. Вот почему я рекомендую связаться с вашим сетевым администратором. Но в этом случае не должно быть проблем; хранилище кажется маленьким. (Даже если бы оно было большим, иногда допустимо увеличение времени ожидания. Именно когда вам приходится передавать много данных много раз в день, это может стать обременительным для вашего рабочего процесса.)
Это возможно для Git server не предлагает HTTP-доступ, но на практике это редко, и я проверил этот, и он действительно его предоставляет, и мне удалось клонировать репозиторий : [ 1137]
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://
для большого хранилища.
Это работает для меня.
git config --global url."https://github.com/".insteadOf git://github.com/
Похоже, у вас проблема с сетью. Протокол git использует порт 9418 по умолчанию, поэтому убедитесь, что порт открыт и не заблокирован брандмауэром.