अद्यतन अप्रैल 2015: Git Large File Storage (LFS) (GitHub द्वारा)।
यह का उपयोग करता है git-lfs (देखें git-lfs.github.com) और एक सर्वर से इसका समर्थन के साथ परीक्षण किया: lfs-test-server:
आप मेटाडाटा केवल Git रेपो में स्टोर कर सकते हैं, और दूसरी जगहों बड़ी फाइल।
मूल जवाब (2012)
एक समाधान, बड़े बाइनरी फ़ाइलें के लिए इतना नहीं बदलते हैं, उन्हें एक अलग संदर्भ (एक Nexus repository की तरह) में स्टोर करने के लिए है , और संस्करण केवल एक टेक्स्ट फ़ाइल है जो आपको जिस संस्करण की आवश्यकता है घोषित करता है।
स्रोत रेपो (संस्करणों की तुलना करने और शाखाओं के बीच विलय करने के लिए बनाया गया है, जो बाइनरी के लिए अधिक उपयोग नहीं है) में बाइनरी तत्वों को संग्रहीत करने से "आर्टिफैक्ट रिपोजिटरी" का उपयोग करना आसान है।
अन्य समाधान है, और अधिक Git केंद्रित, git-annex है:
git-annex
, Git के साथ प्रबंध फ़ाइलों की अनुमति देता है Git में फ़ाइल की सामग्री की जाँच के बिना।
हालांकि यह विरोधाभासी प्रतीत हो सकता है, यह तब उपयोगी होता है जब गिट की तुलना में बड़ी फ़ाइलों से निपटना वर्तमान में आसानी से संभाल सकता है, चाहे स्मृति, समय या डिस्क स्थान में सीमाएं हों।
हालांकि यह विंडोज के साथ संगत नहीं है।
एक और सामान्य समाधान git-media हो सकता है, जो आपको गिट में मीडिया को संग्रहीत किए बिना बड़ी मीडिया फ़ाइलों के साथ गिट का उपयोग करने की अनुमति देता है।
अंत में, सबसे आसान समाधान उन बाइनरी को अपने git submodule में अलग करना है जैसा कि आप अपने प्रश्न में उल्लेख करते हैं: यह बहुत संतोषजनक नहीं है, और प्रारंभिक क्लोन में अभी भी समय लगेगा, लेकिन माता-पिता रेपो के लिए अगले अपडेट छोटा हो
मैंने गिट-एलटीएस के साथ अपना जवाब अपडेट किया है। – VonC