გამოიყენეთ პროქსი ერთი Git საცავისთვის
დააყენეთ საცავის ლოკალური HTTP პროქსი, შეამოწმეთ დისტანციური 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 დისტანციურმა საცავმა შეიძლება 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
წაშლის შემდეგ სხვა წყაროების შესაბამისი კონფიგურაცია კვლავ მოქმედებს. ეს არ არის მანქანის ყველა პროქსი პარამეტრის წაშლის ბრძანება.