2009-04-28 10 views
8

मैं एक गिट भंडार रखना चाहता हूं जिसमें मुख्य रूप से बाइनरी फ़ाइलें शामिल हैं।एक गिट भंडार में बाइनरी फ़ाइलों का कुशल भंडारण

मुझे भंडार में बदले गए, जोड़े गए और हटाए गए फ़ाइलों का ट्रैक रखने की आवश्यकता है, लेकिन मैं गिट के लिए फाइलों की सामग्री को संस्करण में नहीं रखना चाहता हूं।

दूसरे शब्दों में, मुझे केवल परिवर्तन (ट्रैक बदलने) का ट्रैक रखने के लिए गिट की आवश्यकता है, लेकिन सामग्री नहीं।

क्या यह गिट के साथ भी संभव है?

क्या मुझे इसके लिए कुछ और उपयोग करना चाहिए?

+0

आप सामग्री को विशेष रूप से ट्रैक क्यों नहीं करना चाहते हैं? –

+3

मुझे नहीं पता कि @ डेमा के कारण क्या हैं, लेकिन गिट-एनेक्स इस के लिए दो उपयोग मामलों का वर्णन करता है: http://git-annex.branchable.com/ – toolbear

+0

यह http://stackoverflow.com/questions का एक डुप्लिकेट है/540535/प्रबंधन-बड़े-बाइनरी-फाइल-साथ-गिट – dbn

उत्तर

9

गिट एक सामग्री ट्रैकर है, इसलिए यदि आप सामग्री को ट्रैक नहीं करना चाहते हैं तो ऐसा लगता है कि यह नौकरी के लिए गलत उपकरण है। मुझे यकीन नहीं है कि आप उनकी सामग्री को ट्रैक किए बिना फ़ाइलों में परिवर्तनों को कैसे ट्रैक करेंगे।

+2

मैं असहमत हूं कि यह गलत टूल है; गिट भी एक उपयोगकर्ता स्पेस फ़ाइल सिस्टम है जिसमें कई "प्लंबिंग" कमांड उपलब्ध हैं, इसलिए इसका उपयोग सामग्री के संस्करण नियंत्रण से परे उपन्यास तरीकों में किया जा सकता है – toolbear

+0

मुझे एक ही समस्या का सामना करना पड़ रहा है ... क्या आपके पास "दाएं" टूल के लिए कोई सुझाव है कई बाइनरी फाइलों को ट्रैक करने के लिए? टूलबियर के लिए – eykanal

+0

-1। गिट बाइनरी फ़ाइलों को ट्रैक करने के लिए नहीं है (इसके सीधे उपयोग में) ... और वह "उपयोगकर्ता स्थान फ़ाइल सिस्टम" क्या है ???? – voila

2

यदि आप डिब्बे को स्टोर नहीं करना चाहते हैं, तो आप फ़ाइलों पर बाइनरी डिफ टूल का उपयोग कर सकते हैं, फिर आउटपुट को संस्करण नियंत्रण में प्रतिबद्ध करें। किसी भी पाठ परिवर्तन लॉग प्रविष्टियों को फिर प्रतिबद्ध संदेश में दर्ज किया जा सकता है।

1

शायद मैं आपके प्रश्न को समझ नहीं पा रहा हूं, लेकिन अगर आप टेक्स्ट फाइल में सभी फाइलों का टाइमस्टैम्प स्टोर करते हैं तो क्या होगा? फिर, आप केवल उस फ़ाइल को संस्करण नियंत्रण में स्टोर कर सकते हैं, और अपने वीसीएस को इसके विभिन्न संस्करणों को अलग करने दें।

13

इस related question करने के लिए @Tobu's answer से खनन: वास्तव में उन्हें Git में संग्रह किए बिना

संस्करण के लिए और प्रचार बाइनरी फ़ाइलें, git-annex प्रयास करें।

+0

बहुत रोचक परियोजना, thanx – cmcginty

0

लेकिन मैं नहीं है Git के लिए संस्करण के लिए फ़ाइलों को स्वयं की सामग्री चाहते हैं।

यह वास्तव में Git Large File Storage (LFS) करता है (गिटहब, अप्रैल 2015 द्वारा)।

परियोजना git-lfs (देखें git-lfs.github.com) है और एक सर्वर से इसका समर्थन के साथ परीक्षण किया: lfs-test-server:
उस Git रेपो में मेटाडाटा केवल स्टोर कर सकते हैं, और कहीं और बड़ी फाइल।

https://cloud.githubusercontent.com/assets/1319791/7051226/c4570828-ddf4-11e4-87eb-8fc165e5ece4.gif

  • बड़ी फ़ाइलें, HTTPS पर एक विन्यास Git LFS सर्वर से अलग से सिंक किए गए हैं ताकि आप जहाँ आप अपना Git भंडार धक्का में सीमित नहीं हैं।

  • बड़ी फ़ाइलों को केवल सर्वर से सिंक किया जाता है जब वे चेक आउट होते हैं, इसलिए आपकी स्थानीय रिपोजिटरी की आवश्यकता होने पर प्रत्येक फ़ाइल के प्रत्येक संस्करण का वजन नहीं लेता है।

  • गिट में संग्रहीत मेटा डेटा भविष्य के उपयोग के लिए एक्स्टेंसिबल है। इसमें वर्तमान में फ़ाइल की सामग्री का हैश शामिल है, और फ़ाइल आकार ताकि क्लाइंट एक बड़े डाउनलोड को डाउनलोड या ऑप्ट आउट करते समय प्रगति पट्टी प्रदर्शित कर सकें।

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