फक्त एका Git रेपॉझिटरीसाठी प्रॉक्सी वापरा
रेपॉझिटरी-स्थानिक HTTP प्रॉक्सी ठेवा, रिमोट URL साठी Git ने निवडलेली संरचना तपासा आणि गरज नसताना ओव्हरराइड काढा.
एका प्रकल्पाला वेगळी जोडणी हवी म्हणून ग्लोबल 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
काढल्यावर इतर स्रोतांची लागू संरचना पुन्हा प्रभावी होते. मशीनवरील सगळी प्रॉक्सी सेटिंग मिटवण्याची ही आज्ञा नाही.