2013-10-31 5 views
18

मैं http पर पढ़ने-योग्य पहुंच के लिए एक गिट रिपोजिटरी उपलब्ध कराने की कोशिश कर रहा हूं।http के माध्यम से गिट रेपो क्लोन नहीं कर सकता; जानकारी/रेफरी नहीं मिली

मैं इसे पुराने शैली का तरीका कर रहा हूं क्योंकि git-http-backend मेरे होस्ट सिस्टम पर उपलब्ध नहीं है। यही है, मैं बस एक http सुलभ स्थान में नंगे भंडार डाल रहा हूँ।

मैंने git clone --bare <some-remote-location> का उपयोग कर मेजबान पर सफलतापूर्वक नंगे भंडार बनाया।

अब, जब मैं git clone http://my.host.name/location का उपयोग कर नए क्लोन पर गिट इंगित करता हूं, तो एक संदेश repository not found रिपोर्ट करता है।

जब मैं नेटवर्क यातायात को पकड़ता हूं, तो मुझे लगता है कि गिट http://my.host.name/location/info/refs तक पहुंचने का प्रयास कर रहा है। यह असफल होने की उम्मीद की जाएगी क्योंकि भंडार में info/refs पथ नहीं है। इसके बजाय info और refs निर्देशिका सीधे भंडार रूट के नीचे हैं।

स्पष्ट रूप से क्लोन नंगे भंडार ग्राहक द्वारा अपेक्षित के रूप में संरचित नहीं है। क्या कोई जानता है कि यह क्यों हो सकता है?

उत्तर

23

आपको "गूंगा प्रोटोकॉल" के लिए आवश्यक फ़ाइलों को उत्पन्न करने के लिए सर्वर पर git update-server-info चलाने की आवश्यकता होगी।

+1

साथ ही, आपको एक नंगे भंडार – Luc

10

here on git-scm for http/s protocol का उल्लेख किया गया चरणों का प्रयास करें।

असल में, git clone --bare <path-to-repository> करने के बाद, आप अपने नंगे भंडार के भीतर mv hooks/post-update.sample hooks/post-update चलाने के लिए और फिर एक बार एक git update-server-info क्या करने की जरूरत है और फिर आप रेपो क्लोन करने के लिए सक्षम होना चाहिए।

1

जब रिमोट गिट रिपोजिटरी 1.7.X पर चल रहा है तो यह समस्या है और गिट क्लाइंट 1.8.X है; मैंने इसे अपने क्लाइंट को 1.7.एक्स तक डाउनग्रेड करके साबित कर दिया - इसने इस मुद्दे को ठीक किया। तो सुनिश्चित करें कि गिट "क्लाइंट" और "सर्वर" पक्षों पर एक ही संस्करण है। मैं जो आदेश चला रहा था वह गिट क्लोन था।

+0

मैं एक ही मुद्दा था में ऐसा करने की जरूरत है, और यह पता चला जा, क्योंकि सर्वर को भेज रही थी charset = utf-8। https://github.com/takezoe/gitbucket/issues/20 देखें – AlexDev

0

यह भी जांचने के लिए याद रखें कि आवश्यक मॉड्यूल अपाचे पर सक्षम हैं। ये Git के लिए आवश्यक मॉड्यूल HTTP पर कर रहे हैं:

  • mod_alias
  • mod_cgi
  • mod_env
0

मैं एक ही त्रुटि एक gitlab परियोजना क्लोन करने के लिए क्योंकि मैं एक गलत पथ सेट की कोशिश कर रहा था !
मैंने HTTP पथ के बजाय SSH पथ लिया। (+ भूल नहीं .git)

git clone *HTTP_path.git* 
संबंधित मुद्दे