एउटा परियोजनालाई फरक जडान चाहियो भन्दैमा ग्लोबल 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

हटाउँदा अरू स्रोतको लागू कन्फिगरेसन पुनः प्रभावी हुन्छ। यो मेसिनका सबै प्रोक्सी सेटिङ मेटाउने कमान्ड होइन।

सम्बन्धित लेखहरू