2009-11-12 9 views
107

कैसे परिवर्तित करें मैं http प्रॉक्सी के पीछे काम कर रहा हूं। मैं अपने "रेपो" टूल का उपयोग करके एंड्रॉइड के स्रोत पेड़ को क्लोन करने की कोशिश कर रहा हूं।`git:` urls से `http:` urls

यह टूल git:// यूआरएल का उपयोग करने पर जोर देता है, भले ही http:// यूआरएल भी काम करते हैं। नतीजतन, मैं स्रोत डाउनलोड नहीं कर सकता।

क्या git को हमेशा http का उपयोग करने के लिए मजबूर करना संभव है?

संपादित करें: मेरा http_proxy सही तरीके से कॉन्फ़िगर किया गया है। उदाहरण के लिए, इस काम करता है:

git clone http://android.git.kernel.org/platform/manifest.git 

लेकिन यह नहीं (errno = कनेक्शन टाइम आउट हो) करता है:

git clone git://android.git.kernel.org/platform/manifest.git 

तो this answer वास्तव में मुझे मदद नहीं करता है।

+0

यह [पिछला उत्तर] देखें (http://stackoverflow.com/questions/128035/how-do-i-pull-from-a-git-repository-through-an-http-proxy/397642#397642) । –

उत्तर

243

यहाँ GitHub के लिए डिफ़ॉल्ट प्रोटोकॉल को फिर से लिखने का एक उदाहरण है //, या इसके विपरीत।

+16

फ़ायरवॉल ब्लॉक गिट प्रोटोकॉल जब मदद करता है! :) – Turowicz

+8

मेरे लिए काम नहीं कर रहा है :( –

+0

यह काम करता है और बहुत सीधा है। यह स्वीकार्य उत्तर –

35

मैं कैसे इस repo उपकरण Git का उपयोग करता है नहीं पता है (और आप http प्रोटोकॉल का उपयोग करने के लिए 'रेपो' कॉन्फ़िगर कर सकते हैं तो), लेकिन आप url.<base>.insteadOf विन्यास चर का उपयोग कर यह चाल करने के लिए कोशिश कर सकते हैं (git-config और git-fetch manpages देखें)।

क्या आपने फ़ायरवॉल से गुज़रने के लिए core.gitProxy का उपयोग करने का प्रयास किया है, यदि यह गिट प्रोटोकॉल का उपयोग करने की समस्या है?

+2

धन्यवाद, यह "इसके बजाय" चर वैरिएबल है जो मुझे चाहिए था। – noamtm

22

मुझे एक ही गिट रिपोजिटरी में पुनः सबमिट करने के साथ ही यही समस्या थी। मैं एक पागल फ़ायरवॉल के पीछे हूं जो गिट बंदरगाह पर आउटगोइंग कनेक्शन की अनुमति नहीं देता है। Submodules के कुछ submodules git://github.com/blah/blah.git के रूप में कोडित किया गया था। इसने submodules की मेरी रिकर्सिव आबादी को मार डाला। वैकल्पिक हल निम्नलिखित है:

git config --global url."https://<GITUSERNAME>@".insteadOf git:// 

यह सब submodule भंडार यूआरएल में https://<GITUSERNAME>@ साथ git:// बदल देता है। आपको अपने खुद के गिट उपयोगकर्ता नाम के साथ <GITUSERNAME> को प्रतिस्थापित करने की आवश्यकता है। यह भी ध्यान रखें कि --global आवश्यक है; बस इस विन्यास को मूल भंडार निर्देशिका में जोड़ना काम नहीं करता है।

git config --global url.https://github.com/.insteadOf git://github.com/ 
+0

वास्तव में समाधान सहित धन्यवाद ... – GalacticJello

+3

वाई न केवल गिट कॉन्फ़िगरेशन - ग्लोबल यूआरएल का उपयोग करें। "Https: //" .insteadOf git: // जैसा कि यहां दिखाया गया है? https://github.com/angular/angular-phonecat/issues/141 मेरा मतलब उपयोगकर्ता नाम अनिवार्य है? –

1

आप ~/.gitconfig में पुष्टि कर सकते हैं अगर आप https साथ SSH अधिलेखित कर रहे हैं:

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