2010-05-15 17 views
22

के साथ `svn cat` के गिट समकक्ष गिट में svn cat के समतुल्य के लिए देख रहा हूं।रिमोट रिपोजिटरी

हाँ, मुझे पता है कि the similar question यहां पूछा गया था। जवाब git show rev:path का उपयोग करना है।

हालांकि, svn cat रिमोट रिपोजिटरी के लिए उपयोग किया जा सकता है। यही है, मैं svn cat [email protected] कर सकता हूं और संपूर्ण भंडार प्राप्त किए बिना, दूरस्थ भंडार के निर्दिष्ट संशोधन से फ़ाइल प्राप्त कर सकता हूं। मेरी समझ यह है कि git show केवल स्थानीय भंडार पर लागू होता है।

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

+3

मुझे नहीं लगता कि यह आपके इच्छित से अधिक डाउनलोड किए बिना ऐसा करने का कोई तरीका है: गिट सर्वर प्रोटोकॉल इसे उपलब्ध नहीं करता है। रिमोट रिपोजिटरी (एक हिस्सा) डाउनलोड करने के अलावा, एकमात्र अन्य चीज जो मुझे लगता है कि आप कर सकते हैं रिमोट रेफरी जानकारी (गिट एलएस-रिमोट) प्राप्त कर सकते हैं। –

+2

मैं निकोलस से सहमत हूं: मुझे लगता है कि ऐसा करने का एकमात्र तरीका "गिट फ़ेच" (जो आपके भंडार को अपडेट करेगा, लेकिन इसमें कुछ भी विलय नहीं करेगा), फिर उल्लिखित थ्रेड में से एक आदेश चलाएं। – RyanWilcox

+1

या गिट रिमोट अपडेट (सभी रिमोट्स के लिए गिट फ़ेच) – xenoterracide

उत्तर

3

another thread में यह उल्लेख किया गया है कि एक फ़ाइल लाने के लिए असंभव है। तो एकमात्र विकल्प या तो रिमोट रिपोजिटरी लाने के लिए हैं, या किसी अन्य टूल के साथ फ़ाइल को देखें (उदाहरण के लिए एक वेब ब्राउजर)।

गिथब को ऑनलाइन फाइल देखने के लिए उत्कृष्ट समर्थन है, यदि आप कमांडलाइन पर रहना चाहते हैं तो आप उस कर्ल के साथ एकीकृत कर सकते हैं। अन्य भंडारों के लिए, ऐसी विशेषताएं नहीं हो सकती हैं।

9

यदि आपकी प्रेरणा आपके स्थानीय डिस्क पर डाउनलोड और/या संग्रहीत डेटा की मात्रा को कम करने के लिए है, तो आप निम्न आदेशों को आजमा सकते हैं।

git clone --depth=1 --bare REPO 
cd REPO.git 
git show HEAD:PATH/TO/FILE 

--depth=1 आप केवल सबसे हाल संशोधन, नहीं किसी भी इतिहास डाउनलोड लगाएंगे। --bare का अर्थ है कि आप रिमोट रिपोजिटरी डाउनलोड करेंगे, लेकिन वास्तव में कोई भी काम करने वाला पेड़ नहीं बनाएगा, जिससे आपकी स्थानीय डिस्क पर स्थान बचाया जा सकेगा।

ध्यान दें कि यदि आप सबसे हाल के अलावा फ़ाइल के किसी संस्करण में रुचि रखते हैं, तो उपरोक्त आदेश काम नहीं करेंगे, क्योंकि वे कोई इतिहास डाउनलोड नहीं करते हैं।

7
git fetch 
git show remotes/origin/master:<filename> 

स्पष्ट रूप से आपकी दूरस्थ शाखा remotes/origin/master पर नहीं हो सकती है।

8

यहाँ एक हैक है आप (जो करने के लिए आप Git उपयोग कर सकते है) रेपो क्लोनिंग के बिना एक दूरस्थ रेपो से एक एकल फाइल प्राप्त करने के लिए Git के हाल के संस्करणों के साथ उपयोग कर सकते हैं:

git archive [email protected]:myrepo master path/to/file1 | tar -xOf - > file1 

ऊपर हो जाता है master से फ़ाइल। अपनी जरूरतों में संशोधन करें।

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