일반적인 시간 초과 문제 해결
Git 구성을 완료했으므로 일반적인 시간 초과 시나리오와 이를 해결하는 방법을 살펴보겠습니다. 실제 상황에서 적용할 수 있는 실용적인 해결책을 살펴보겠습니다.
자세한 출력과 함께 Git 사용
시간 초과가 발생할 때 Git 이 수행하는 작업에 대한 자세한 정보를 확인하는 것이 도움이 됩니다. 자세한 플래그는 통찰력을 제공할 수 있습니다.
cd ~/project/test-repo
GIT_CURL_VERBOSE=1 git fetch
원격 저장소가 없는 로컬 저장소로 작업하고 있으므로 원격이 구성되지 않았다는 오류가 표시될 수 있습니다. 이것은 예상된 동작입니다. 원격 저장소가 있는 실제 시나리오에서는 자세한 연결 정보가 표시됩니다.
대용량 리포지토리 전송 처리
대용량 리포지토리는 복제 작업 중에 시간 초과를 유발할 수 있습니다. 한 가지 해결책은 가장 최근 커밋만 가져오는 얕은 복제를 사용하는 것입니다.
cd ~/project
git clone --depth 1 https://github.com/git/git.git shallow-git-repo
이 명령은 Git 리포지토리에서 최신 커밋만 복제하여 전송 시간을 크게 줄입니다. 출력은 복제 진행 상황을 보여줍니다.
Cloning into 'shallow-git-repo'...
remote: Enumerating objects: 3941, done.
remote: Counting objects: 100% (3941/3941), done.
remote: Compressing objects: 100% (3066/3066), done.
remote: Total 3941 (delta 989), reused 2097 (delta 603), pack-reused 0
Receiving objects: 100% (3941/3941), 3.31 MiB | 2.86 MiB/s, done.
Resolving deltas: 100% (989/989), done.
이것이 실제로 얕은 리포지토리인지 확인하려면 다음을 수행합니다.
cd shallow-git-repo
git log --oneline | wc -l
출력은 작은 숫자여야 하며, 이는 몇 개의 커밋만 다운로드되었음을 나타냅니다.
1
HTTPS 와 SSH 간 전환
때로는 연결 프로토콜을 전환하면 시간 초과 문제를 해결할 수 있습니다. HTTPS 에서 SSH 로 변경하는 방법을 살펴보겠습니다.
먼저 현재 원격 URL 을 확인합니다.
cd ~/project/shallow-git-repo
git remote -v
출력은 HTTPS URL 을 표시합니다.
origin https://github.com/git/git.git (fetch)
origin https://github.com/git/git.git (push)
SSH 로 변경하려면 (참고: SSH 키를 설정하지 않았으므로 데모용입니다.)
git remote set-url origin [email protected]:git/git.git
git remote -v
이제 출력은 SSH URL 을 표시해야 합니다.
origin [email protected]:git/git.git (fetch)
origin [email protected]:git/git.git (push)
이 변경은 HTTPS 연결을 차단할 수 있는 특정 네트워크 제한을 우회하는 데 도움이 될 수 있습니다.
프록시 환경 처리
프록시 뒤에 있는 경우 Git 이 이를 사용하도록 구성할 수 있습니다.
## This is for demonstration purposes, do not run this if you are not behind a proxy
## git config --global http.proxy http://proxy.example.com:8080
## git config --global https.proxy https://proxy.example.com:8080
프록시 설정이 활성화되었는지 확인하려면 다음을 수행합니다.
git config --global http.proxy
git config --global https.proxy
프록시가 구성되지 않은 경우 출력이 없습니다.
SSL 검증 감소로 테스트
일부 기업 환경에서는 SSL 검증으로 인해 시간 초과가 발생할 수 있습니다. 보안상의 이유로 권장되지는 않지만, 테스트 목적으로 SSL 검증을 일시적으로 비활성화할 수 있습니다.
## Only use this for testing, do not leave SSL verification disabled
git config --global http.sslVerify false
설정을 확인하려면 다음을 수행합니다.
git config --global http.sslVerify
출력:
false
테스트 후에는 SSL 검증을 다시 활성화하는 것을 잊지 마십시오.
git config --global http.sslVerify true
변경 사항을 확인합니다.
git config --global http.sslVerify
출력:
true
이러한 문제 해결 기술은 다양한 시나리오에서 Git 연결 시간 초과를 해결하기 위한 포괄적인 도구 키트를 제공합니다.