Выкарыстоўвайце проксі для аднаго рэпазіторыя Git
Задайце лакальны HTTP-проксі рэпазіторыя, праверце выбраную Git канфігурацыю для аддаленага URL і выдаліце перавызначэнне, калі яно непатрэбнае.
Глабальны проксі 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 можа выкарыстоўваць звычайны HTTP-проксі з CONNECT; схема HTTPS аддаленага URL не патрабуе мяняць 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. Налада HTTP-проксі Git не ператварае яго ў HTTP-перадачу. Праверце транспарт аддаленага адраса перад заменай працоўнага IP проксі толькі праз тое, што аперацыя SSH усё яшчэ не ўдаецца.
Калі лакальнае перавызначэнне больш не патрэбнае, выдаліце толькі гэты ключ:
git -C project config unset --local http.proxy
Гэта зноў дае дзейнічаць адпаведнай канфігурацыі з іншых крыніц. Каманда не выдаляе ўсе налады проксі на машыне.