Глабальны проксі 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

Гэта зноў дае дзейнічаць адпаведнай канфігурацыі з іншых крыніц. Каманда не выдаляе ўсе налады проксі на машыне.

Падобныя артыкулы