2013-10-22 7 views
14

अस्थायी रूप से अक्षम कैसे करें मैं कॉर्पोरेट फ़ायरवॉल के पीछे गिट का उपयोग कर रहा हूं, और मैं http.proxy --global config का उपयोग कर बाहरी परियोजनाओं को सफलतापूर्वक क्लोन कर रहा हूं।गिट http प्रॉक्सी

मेरी समस्या तब उत्पन्न होती है जब मैं इंट्रानेट पर http के माध्यम से क्लोन करना चाहता हूं। मुझे संदेह है कि प्रॉक्सी कॉन्फ़िगरेशन इंट्रानेट अनुरोध में हस्तक्षेप करता है।

मुझे पता है कि मैं इंट्रानेट का उपयोग करने से पहले कॉन्फ़िगर रीसेट कर सकता हूं, लेकिन यह बहुत उपयोगकर्ता के अनुकूल नहीं है।

मैंने यह answer भी देखा, लेकिन ऐसा लगता है कि केवल एक मौजूदा भंडार के लिए लागू होता है।

क्या केवल एक कमांड आमंत्रण के लिए प्रॉक्सी उपयोग को निष्क्रिय करने का कोई तरीका है? इस मामले में, प्रारंभिक क्लोन?

उत्तर

27

मैं हमेशा सेट:

no_proxy=.mycompany 

(export अगर मैं यूनिक्स पर हूँ, या एक सरल set Windows पर)

यह सब इंट्रानेट यूआरएल ".mycompany" के साथ समाप्त होने के लिए प्रॉक्सी का उपयोग नहीं करने के लिए पर्याप्त है ।

एक उदाहरण के लिए देखें:

मैं अपने ही परियोजना में इसका इस्तेमाल करते हैं: .proxy.example:

export http_proxy=http://username:[email protected]:port 
export https_proxy=http://username:[email protected]:port 
export no_proxy=.company localhost 
+0

मेरी इच्छा है कि मैं इसे कई बार वोट दे सकता हूं! मैंने इस डरावनी चीज को समझने की कोशिश कर रहे दिन बिताए! आपको धन्यवाद! –

+0

आपको बहुत बहुत धन्यवाद ... यह मुझे पागल कर रहा था ... – Tracker1

9

मैं ऐसा करने के दो Git उपनाम सेट किया गया है की तरह है क्या:

~/.gitconfig

[alias] 
     noproxy = config --global --remove-section http 
     proxy = config --global http.proxy http://127.0.0.1:9666 

ध्यान दें कि मैं config --global --unset http.proxy का उपयोग नहीं किया प्रॉक्सी पुनर्स्थापित करने के लिए, क्योंकि वह पीछे [http] अनुभाग शीर्ष छोड़ देता है , इसलिए बार-बार प्रॉक्सी को सक्षम और अक्षम करने के बाद आपके .gitconfig खाली [http] सेक्शन हेडिंग्स के समूह के साथ प्रदूषित हो जाएंगे। कोई बड़ा सौदा नहीं है, लेकिन यह सिर्फ कष्टप्रद है।


जैसे कॉर्पोरेट फ़ायरवॉल के पीछे के रूप में कुछ मामलों में,, आप के बजाय ~/.ssh/config विन्यस्त करने की जरूरत। सेटअप थोड़ा और अधिक जटिल हो जाता है:

~/.gitconfig

[alias] 
     noproxy = !sh -c 'cp ~/.ssh/config.noproxy ~/.ssh/config' 
     proxy = !sh -c 'cp ~/.ssh/config.proxy ~/.ssh/config' 

~/.ssh/config.noproxy

Host github.com-username 
    HostName github.com 
    User git 
    IdentityFile ~/.ssh/id_rsa 

~/.ssh/config।प्रॉक्सी

Host * 
    ProxyCommand connect -H 127.0.0.1:9666 %h %p 

Host github.com-username 
    HostName github.com 
    User git 
    IdentityFile ~/.ssh/id_rsa 

तुम भी यह करने के लिए उपनाम बदलकर दो तरीकों गठबंधन कर सकते हैं:

[alias] 
     noproxy = !sh -c 'git config --global --remove-section http 2> /dev/null && cp ~/.ssh/config.noproxy ~/.ssh/config' 
     proxy = !sh -c 'git config --global http.proxy http://127.0.0.1:9666 && cp ~/.ssh/config.proxy ~/.ssh/config' 

अब मैं बस प्रॉक्सी निष्क्रिय करने के लिए टाइप कर सकते हैं git noproxy और git proxy इसे सक्षम करने के। आप अधिक उपनाम बनाकर कई प्रॉक्सी के बीच भी स्विच कर सकते हैं।

संबंधित मुद्दे