이것이 방화벽에서 git : protocol port (9418)를 차단하는 문제인 경우, 좀 더 지속적으로 변경해야하므로 모든 git repo에 대해 다른 게시물에서 제안한 명령을 실행해야합니다.
아래 솔루션은 git : 프로토콜을 사용하는 하위 모듈에서도 작동합니다.
git 메시지가 실제로 방화벽 차단 포트 9418을 가리 키지 않기 때문에이를 실제 문제로 진단 해보십시오.
문제 진단
참조 : https://superuser.com/q/621870/203918 및 https://unix.stackexchange.com/q/11756/57414
방화벽이 문제를 일으키는 지 확인하기 위해 사용할 수있는 몇 가지 도구가 있습니다. 시스템에 설치된 도구를 사용하십시오.
# Using nmap
# A state of "filtered" against port 9418 (git) means
# that traffic is being filtered by a firewall
$ nmap github.com -p http,git
Starting Nmap 5.21 ( http://nmap.org ) at 2015-01-21 10:55 ACDT
Nmap scan report for github.com (192.30.252.131)
Host is up (0.24s latency).
PORT STATE SERVICE
80/tcp open http
9418/tcp filtered git
# Using Netcat:
# Returns 0 if the git protocol port IS NOT blocked
# Returns 1 if the git protocol port IS blocked
$ nc github.com 9418 < /dev/null; echo $?
1
# Using CURL
# Returns an exit code of (7) if the git protocol port IS blocked
# Returns no output if the git protocol port IS NOT blocked
$ curl http://github.com:9418
curl: (7) couldn't connect to host
자 이제 우리는 그것이 git 포트가 방화벽에 의해 차단되고 있는지 확인했습니다. 어떻게해야합니까? 읽어 :)
기본 URL 재 작성
Git은을 사용하여 URL을 다시 쓰는 방법을 제공합니다 git config
. 다음 명령을 발행하십시오.
git config --global url."https://".insteadOf git://
자, 마술처럼, 모든 자식 명령의 대체 수행 git://
에를https://
이 명령으로 어떤 변화가 있었습니까?
다음을 사용하여 글로벌 구성을 살펴보십시오.
git config --list
출력에 다음 줄이 표시됩니다.
url.https://.insteadof=git://
~/.gitconfig
다음 두 줄이 추가 된 위치를 살펴보면 파일이 어떻게 보이는지 확인할 수 있습니다 .
[url "https://"]
insteadOf = git://
더 많은 제어를 원하십니까?
대체에보다 완전한 / 특정 URL을 사용하십시오. 예를 들어, GitHub URL 만 git : // 대신 https : //를 사용하도록하려면 다음과 같이 사용할 수 있습니다.
git config --global url."https://github".insteadOf git://github
다른 대체를 사용하여이 명령을 여러 번 실행할 수 있습니다. 그러나 URL이 여러 개의 대체 항목과 일치하는 경우 가장 긴 일치 항목이 "우승"합니다. URL 당 한 번만 교체됩니다.
Sysadmins에 대한 시스템 전체 변경 사항
Linux Sysadmin이고 사용자가 위의 어려움을 겪지 않게하려면 시스템 전체의 git 구성을 빠르게 변경할 수 있습니다.
다음 내용을 간단히 편집하거나 추가하면 /etc/gitconfig
사용자는 위의 내용에 대해 걱정할 필요가 없습니다.
[url "https://"]
insteadOf = git://