프로젝트 하나에 다른 연결이 필요하다는 이유만으로 전역 Git 프록시를 설정할 필요는 없습니다. 기존 체크아웃에는 자체 로컬 구성이 있으므로 변경을 해당 저장소에만 둘 수 있습니다.

이 예제는 현재의 git config set/get/unset 명령을 사용합니다. 프로젝트 디렉터리, 원격 URL, 문서용 IP는 자리표시자입니다. 공개 프록시가 허용되는 공개 저장소 테스트라면 HTTP 프록시 목록에서 후보를 선택하세요.

git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin

프록시 URL에는 전송 스킴이 포함됩니다. HTTPS 원격도 CONNECT를 지원하는 일반 HTTP 프록시를 쓸 수 있습니다. 원격의 HTTPS 스킴이 프록시 URL을 HTTPS로 바꿔야 한다는 뜻은 아닙니다.

Git이 실제 선택한 값 확인하기

결과가 예상과 다르면 실제 원격 URL에 선택된 값을 확인하세요.

git -C project config get --show-origin \
  --url=https://example.com/team/project.git http.proxy

이 조회에는 실제 HTTPS 원격을 사용하세요. Git에는 시스템, 사용자, 저장소, 명령줄, URL별 설정이 있을 수 있습니다. 전역 http.proxy 값만 보면 더 구체적인 규칙을 놓칠 수 있습니다. 출처 출력은 결과를 결정한 파일이나 명령줄 소스를 찾는 데 도움이 됩니다.

로컬 설정은 해당 저장소에서의 HTTP 기반 접근에 적용되며 특정 브랜치에만 적용되는 것은 아닙니다. HTTP 원격이 여럿인 저장소라면 처음 테스트한 원격 이외에도 쓰일 수 있습니다. 범위를 더 좁혀야 한다면 URL별 HTTP 설정을 쓸 수 있습니다.

체크아웃이 생기기 전

최초 클론에서는 재정의를 유지할지 결정하세요. 해당 Git 호출에만 제한하려면 다음을 사용하세요.

git -c http.proxy=http://203.0.113.10:8080 \
  clone https://example.com/team/project.git

명령줄 재정의는 새 체크아웃의 영구 구성 항목이 자동으로 되지 않습니다. 이후 fetch도 같은 경로를 써야 한다면 나중에 로컬 값을 설정하세요.

SSH 원격은 다른 경우

git@host: 또는 ssh://로 시작하는 원격은 SSH를 씁니다. Git의 HTTP 프록시 설정이 이를 HTTP 전송으로 바꾸지는 않습니다. SSH 작업이 계속 실패한다는 이유만으로 작동하는 프록시 IP를 교체하기 전에 원격 전송 방식을 확인하세요.

로컬 재정의가 더는 필요하지 않으면 해당 키만 제거하세요.

git -C project config unset --local http.proxy

제거하면 다른 출처의 적용 가능한 구성이 다시 드러납니다. 컴퓨터의 모든 프록시 설정을 지우는 명령은 아닙니다.

관련 글