डिफ़ॉल्ट/खुद द्वारा:
सं
हां।
गिट इस आधार पर काम करता है कि यह फाइलों के स्नैपशॉट बनाता है, और अन्य वीसीएस की तरह वृद्धिशील मतभेद नहीं बनाता है।
संपादित
डेव और opatut से उल्लेख किया है, कैसे Git भंडार फ़ाइलों की मेरी समझ गलत था और मैं माफी माँगता हूँ के लिए भ्रम का कारण। अधिक शोध करने पर, गिट डुप्लीकेट फाइलों को पॉइंटर्स के रूप में 1 फ़ाइल में स्टोर करता है। this question के स्वीकार किए जाते हैं जवाब में VonC का हवाला देते हुए,
... एक ही सामग्री के साथ कई फ़ाइलों को केवल एक बार जमा हो जाती है।
कृपया ध्यान दें कि के रूप में है कि इसका जवाब में उल्लेख किया है, धारणात्मक ...
संदर्भित git-scm documentation:
Git अधिक एक लघु की फोटो का एक सेट की तरह अपने डेटा के बारे में सोचती फाइल सिस्टम। हर बार जब आप गिट में अपनी परियोजना की स्थिति को प्रतिबद्ध करते हैं, या सहेजते हैं, तो मूल रूप से उस तस्वीर की एक तस्वीर लेती है कि उस समय आपकी सभी फाइलें कैसी दिखती हैं और उस स्नैपशॉट का संदर्भ संग्रहीत करती हैं। कुशल होने के लिए, यदि फ़ाइलें नहीं बदली हैं, तो गिट फ़ाइल को फिर से संग्रहीत नहीं करता है, केवल एक लिंक पिछली समान फ़ाइल में पहले से संग्रहीत है। गिट स्नैपशॉट्स की धारा की तरह अपने डेटा के बारे में सोचता है।
हालांकि, एक भंडारण स्तर पर, डेल्टा अभी भी उपयोग किया जाता है, जिसमें Git यथासंभव शीघ्र धब्बे की अनुमानी चयन के आधार पर छोटी संभव डेल्टा उत्पन्न करने के लिए कोशिश करता है, वहाँ विकल्प है कि संपीड़न के लिए अनुकूलित कर रहे हैं। जो भंडार के आकार को कम करेगा।
टिप्पणियों के आउटपुट के अपने pastebin link में ओपटाट द्वारा परीक्षण के रूप में, डुप्लिकेट ऑब्जेक्ट्स केवल एक बार संग्रहीत होते हैं। इसका मतलब है कि गिट डुप्लिकेट बाइनरी फाइलों को पहचान लेगा और उन्हें केवल स्टोर करेगा। मूल प्रश्न पूछा गया था। डुप्लिकेट फ़ाइलों को संभालने के अन्य विकल्प निम्नलिखित हैं।
अन्य विकल्प: सिमलिंक
आप सिमलिंक पिछले फ़ाइलों को, कि जिस तरह से जब आप उन पर काम करते हैं, वे एक ही बड़ी फ़ाइल को इंगित करेगा लेकिन ध्यान दें कि Git ट्रैक नहीं करता सेट कर सकते हैं फाइलें जो सिम्लिंक पर इंगित करती हैं, जिसका अर्थ है कि वे केवल सिम्लिंक स्टोर करेंगे। यह पोर्टेबिलिटी के बलिदान पर अंतरिक्ष को कम करने की आपकी ज़रूरत को पूरा करता है, यानी, यदि आप किसी अन्य देव मशीन पर जाते हैं, तो आपको यह सुनिश्चित करना होगा कि फाइलें सिमलिंक इंगित करती हैं। जो आप चाहते हैं वह हो सकता है। this very good SO Q&A देखें कि सिमलिंक के लिए क्या गिट करता है।
एक और वैकल्पिक: उपकरण!
मुझे कई टूल मिल गए हैं जो आपको बाइनरी फ़ाइलों के प्रबंधन के लिए आवश्यकतानुसार पूरा करने में मदद कर सकते हैं।
आप git-annex
को आजमा सकते हैं, जहां यह मूल रूप से केवल बाइनरी फ़ाइलों के नवीनतम संस्करण को ट्रैक करता है और बाकी को सिम्लिंक द्वारा बनाए रखा जाता है, इसलिए एक तरह से यह प्रतीकात्मक लिंक को संभालने का एक और स्वचालित तरीका है। Here's their project site.
या git-submodules
में निर्मित और आप जो चाहते हैं उसे प्राप्त करने के लिए एक अलग रेपो, जहां आप केवल उन्हें उपयोग करने के लिए बड़ी बाइनरी फाइलें लाते हैं।
मान्य है कि मैंने इन विकल्पों का कोई प्रयास नहीं किया है, इसलिए उनके बारे में अधिक स्पष्टीकरण पढ़ने के लिए संदर्भ लिंक यहां दिया गया है। संदर्भ: this SO question
दिलचस्प ... इससे बहुत समझ आएगी और मैं सोच रहा था कि यह क्या हो रहा है। मुझे यह देखने के लिए कुछ खोदना होगा कि यह वास्तव में मामला है (जब मुझे कुछ खाली समय मिलता है)। भी प्रयोग करने के लिए :) एक ही वस्तु आलसी आप में से उन लोगों के लिए – JoshJ
pastebin.com/p0KpqBPX, केवल थोड़ा और अधिक स्थान .git में 1 फ़ाइल से आवश्यक/वस्तुओं – opatut
यह आलस्य नहीं, समय की बस कमी :) अच्छा काम था! – JoshJ