Միայն այն պատճառով, որ մեկ նախագծի այլ միացում է պետք, 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 պրոքսի․ հեռավոր URL-ի 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 փոխանցման չի վերածում։ Ստուգեք հեռավոր հասցեի փոխանցման եղանակը՝ գործող պրոքսիի IP-ն փոխարինելուց առաջ միայն այն պատճառով, որ SSH գործողությունը դեռ ձախողվում է։

Երբ տեղային վերագրումն այլևս պետք չէ, հեռացրեք միայն այդ բանալին․

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

Հեռացնելիս կրկին գործում է այլ աղբյուրների կիրառելի կարգավորումը։ Սա մեքենայի պրոքսիի բոլոր կարգավորումները ջնջելու հրաման չէ։

Առնչվող հոդվածներ