2012-06-17 19 views
29

जब मैं एक भंडार क्लोन करता हूं, तो क्या इन दो यूआरएल के बीच कोई अंतर है?क्यों कुछ रिपॉजिटरी यूआरएल .git में समाप्त होते हैं जबकि अन्य नहीं करते हैं?

git clone http://foo/repo 
  • .git एक्सटेंशन के साथ:

    1. .git विस्तार के बिना

      git clone http://foo/repo.git 
      
  • +0

    यदि आप गिथब यूआरएल का जिक्र कर रहे हैं तो .git वैकल्पिक है – gorelative

    +5

    आपको [इस] (http://stackoverflow.com/a/1734421/164966) उत्तर में रुचि हो सकती है। विशेष रूप से * reponame.git का नामकरण सम्मेलन आम तौर पर नंगे भंडारकों के लिए आरक्षित होता है ... * – R0MANARMY

    उत्तर

    30

    सम्मेलन है कि .git विस्तार नंगे के लिए इस्तेमाल किया जाना चाहिए भंडार, और एक काम कर रहे पेड़ के साथ निर्देशिकाओं से बाहर छोड़ दिया। गिट वास्तव में परवाह नहीं करता है, लेकिन इसमें कुछ सुविधा विधियां हैं जो इसे काफी पारदर्शी बनाती हैं।

    उदाहरण के लिए, अगर आपके पास नाम के एक भंडार /tmp/foo.git और आप git clone file:///tmp/foo फोन, Git पहले /tmp/foo की तलाश करेगा। यदि यह अस्तित्व में नहीं है, तो यह /tmp/foo.git इसके बजाय प्रयास करेगा।

    यह अन्य तरीकों से काम करता है। अपने निर्देशिका /tmp/foo नाम पर है और आप /tmp/foo.git से क्लोन करने के लिए प्रयास करते हैं तो आपको बताया जाएगा:

    घातक: '/tmp/foo.git' प्रतीत नहीं होता है एक गिट रिपोजिटरी

    अधिकांश HTTP/HTTPS कार्यक्षमता आपके वेब सर्वर से है, गिट नहीं। भले ही आप Smart HTTP transport का उपयोग कर रहे हों, मुझे संदेह है कि अधिकांश जादू सर्वर-साइड लोकेशन मैच निर्देश में होता है। थ्योरी एक तरफ, गिटहब के खिलाफ कुछ त्वरित परीक्षण दिखाते हैं कि यह उस सम्मान में एसएसएच और गिट प्रोकोटोल के समान काम करता है, लेकिन आपका माइलेज अन्य वेब सर्वरों पर भिन्न हो सकता है।

    +1

    मैंने सोचा कि स्मार्ट http क्षमता गिट पक्ष पर एक रैपर था, ताकि सर्वर पक्ष बस एक HTTP प्रतिक्रिया प्रदान कर रहा हो। https://github.com/blog/642-smart-http-support लेकिन http://www.kernel.org/pub/software/scm/git/docs/v1.7.3/git-http-backend.html सुझाव मैं गलत था और यह सर्वर कार्यक्षमता का एक छोटा सा है। –

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

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