मुख्य सामग्री पर जाएं

Git Large File Storage (LFS) का अवलोकन

अपनी रिपोजिटरीज़ में Git Large File Storage (LFS) का उपयोग शुरू करें ताकि बड़ी बाइनरी फ़ाइलों का प्रबंधन करने में मदद मिले।
अपडेट किया गया 25 सित॰ 2026  · 9 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

Git एक व्यापक रूप से उपयोग किया जाने वाला वर्शन कंट्रोल टूल है जो सॉफ़्टवेयर डेवलपमेंट प्रोजेक्ट्स, डेटा साइंस वर्कफ़्लोज़ और यहाँ तक कि डॉक्यूमेंटेशन रिपोजिटरीज़ के प्रबंधन में मदद करता है। हालांकि, पारंपरिक Git की बड़ी फ़ाइलों को संभालने में सीमाएँ हैं। बड़ी फ़ाइलें हर कमिट के साथ डुप्लिकेट हो जाती हैं, जिससे रिपोजिटरी फूली हुई हो जाती है और बदलाव पुल करते समय बड़ी फ़ाइलों की कई प्रतियाँ कॉपी करने की आवश्यकता के कारण वर्कफ़्लो धीमा हो जाता है। इस कारण, Git के साथ बड़ी फ़ाइलों का प्रबंधन निम्नलिखित वजहों से अक्षम हो सकता है:

  • बड़ी रिपोजिटरी का आकार: बड़ी फ़ाइलों को सीधे Git रिपोजिटरी में स्टोर करने से उसका कुल आकार बढ़ जाता है, जिससे क्लोनिंग और फ़ेचिंग ऑपरेशन्स धीमे हो जाते हैं, खासकर तब जब आप रिमोट रिपोजिटरी पर काम कर रहे हों जहाँ फ़ाइलें अपलोड/डाउनलोड करनी पड़ सकती हैं।
  • अक्षम स्टोरेज और वर्शनिंग: जब भी किसी बड़ी फ़ाइल में बदलाव होता है, Git उसके इतिहास में एक नया वर्शन स्टोर करता है, जिससे रिपोजिटरी तेजी से फूली हुई हो जाती है।
  • प्रदर्शन संबंधी समस्याएँ: बड़ी रिपोजिटरी के साथ Git ऑपरेशन्स (जैसे, क्लोनिंग, पुलिंग, पुशिंग) काफी धीमे हो जाते हैं और अधिक स्टोरेज की आवश्यकता होती है।

इस गाइड में, हम Git Large File Storage (Git LFS) पर गहराई से नज़र डालेंगे, जो आपकी रिपोजिटरी में बड़ी फ़ाइलों के साथ मदद करने वाला Git एक्सटेंशन है। यह बिना अतिरिक्त डुप्लिकेशन या फ़ाइल स्टोरेज के बड़ी फ़ाइलों में हुए बदलावों को अधिक कुशलतापूर्वक स्टोर करने देता है। आपको इसे तब उपयोग करना चाहिए जब आप अपनी रिपोजिटरी में बड़ी बाइनरी फ़ाइलों की अपेक्षा करते हैं। मैं विस्तार से बताऊँगा कि यह क्या है, कैसे काम करता है, कब उपयोग करना चाहिए, और इसे प्रभावी रूप से कैसे सेटअप करें।

यदि आप Git में नए हैं, तो हमारा Git कैसे सीखें गाइड और Introduction to Git पाठ्यक्रम देखें। 

Git LFS क्या है?

Git Large File Storage (Git LFS) Git के लिए एक एक्सटेंशन है जो बड़ी फ़ाइलों को संभालने में सुधार करता है।  

यह Git में लेज़ी फ़ेचिंग को जोड़कर फ़ेचिंग और क्लोनिंग को बदलता है, ताकि रिमोट रिपोजिटरी से डेटा जरूरत के अनुसार लाया जा सके, और Git में कुछ स्मार्ट फ़ाइल प्रबंधन क्षमता जोड़ता है। 

बाकी हर तरीके से, उपयोगकर्ता अनुभव सहज रहता है और सामान्य Git जैसा ही होता है।

Git LFS मानक Git ट्रैकिंग से कैसे भिन्न है

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

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

अंत में, यह आपके लोकल रिपोजिटरी स्टोरेज को मैनेज करता है ताकि पुरानी फ़ाइल वर्शन को साफ़ रखा जा सके और कार्य वातावरण स्वच्छ बना रहे।

Git LFS कैसे काम करता है?

Git LFS पॉइंटर-आधारित स्टोरेज तंत्र का पालन करता है। जैसा कि पहले बताया गया, जब आप किसी फ़ाइल को LFS ट्रैकिंग के लिए निर्दिष्ट करते हैं, तो Git LFS रिपोजिटरी में उसे एक पॉइंटर फ़ाइल से बदल देता है और एक लोकल कॉपी कैश में भी रखता है। 

जब आप कमिट्स पुश करते हैं, तो लोकल कैश रिमोट स्टोर (जैसे, GitHub, GitLab, Bitbucket LFS सर्वर) पर अपडेट हो जाता है। यदि बदलाव हैं और आप चेकआउट करते हैं, तो ये बदलाव आपके लोकल कैश को अपडेट करते हैं ताकि आपको सबसे हाल की वर्किंग कॉपी मिल सके। 

यदि आप सबसे लोकप्रिय रिमोट रिपोजिटरीज़ में से एक, GitHub, के बारे में जानकारी चाहते हैं, तो यह Introduction to GitHub पाठ्यक्रम देखें।

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

Git LFS सेटअप करना

Git LFS का उपयोग करने से पहले कुछ सेटअप चरण हैं। यह अपेक्षाकृत सरल प्रक्रिया है जिसमें एक्सटेंशन इंस्टॉल करना शामिल है। यदि आपके पास मौजूदा रिपोजिटरीज़ हैं, तो आपको उन्हें माइग्रेट करना होगा। यदि आप नई रिपोजिटरी बना रहे हैं, तो आप बस Git LFS को प्रारंभ कर सकते हैं।

Git LFS इंस्टॉल करना

Git LFS का उपयोग करने के लिए, आपको इसे अपने सिस्टम पर इंस्टॉल करना होगा। सबसे सरल तरीका है git-lfs की वेबसाइट पर जाना और फ़ाइलें इंस्टॉल करना। एक बार ऐसा करने के बाद, आपको अपने कमांड कंसोल में एक बार git lfs install चलाना होगा ताकि Git LFS पूरी तरह से इनिशियलाइज़ और इंस्टॉल हो जाए।

Git LFS का उपयोग करना

इंस्टॉल करने के बाद, आपको सुनिश्चित करना होगा कि Git LFS हर रिपोजिटरी के लिए कॉन्फ़िगर है।  अलग-अलग रिमोट Git ट्रैकर (जैसे GitHub बनाम Bitbucket) के चरणों में थोड़े-बहुत अंतर हो सकते हैं। अपने विशेष Git रिमोट ट्रैकर के लिए अनुशंसित चरणों का पालन करना सबसे अच्छा है। उच्च-स्तर पर, यदि आप नई रिपोजिटरी इनिशियलाइज़ करते हैं, तो आप उस रिपोजिटरी में git lfs install चलाकर हुक्स इनिशियलाइज़ कर सकते हैं और फिर ट्रैक करने के लिए फ़ाइलें जोड़ सकते हैं। यदि आपके पास मौजूदा रिपोजिटरी है, तो आप git lfs migrate का उपयोग कर सकते हैं और फिर .git डायरेक्टरी क्लीनअप प्रक्रियाओं का पालन करें:

git reflog expire --expire-unreachable=now --all
git gc --prune=now

किसी प्रोजेक्ट में Git LFS का उपयोग

आइए किसी प्रोजेक्ट में Git LFS के कुछ उपयोगों से गुजरते हैं। हम Git LFS रिपोजिटरी से बड़ी फ़ाइलों को ट्रैक करने, कमिट करने, क्लोन करने और पुल करने के चरणों को कवर करेंगे।

बड़ी फ़ाइलों को ट्रैक करना (git lfs track)

विशिष्ट फ़ाइल प्रकारों को ट्रैक करना शुरू करने के लिए, हम git lfs track <file type> कमांड का उपयोग कर सकते हैं। उदाहरण के लिए, यदि मैं CSV फ़ाइलों को ट्रैक करना चाहता, तो मैं कमांड लिखता: git lfs track "*.csv"। यह हमारे .gitattributes फ़ाइल में भी जानकारी जोड़ता है ताकि यह सुनिश्चित हो सके कि हम इस विशेष फ़ाइल के लिए Git LFS का उपयोग कर रहे हैं। अब हमें अपनी .gitattributes फ़ाइल को पहले पुश करना चाहिए ताकि यह सुनिश्चित हो कि हम LFS फ़ाइलों को ठीक से ट्रैक कर रहे हैं।

git add .gitattributes
git commit -m "Adding LFS .gitattributes"
git push origin main

बड़ी फ़ाइलों को जोड़ना और कमिट करना

ट्रैकिंग जोड़ने के बाद, आप सामान्य रूप से इसे जोड़ और कमिट कर सकते हैं:

git add largefile.csv
git commit -m "Adding large file with Git LFS"
git push origin main

पर्दे के पीछे, Git LFS फ़ाइल को अलग से स्टोर करता है और रिपोजिटरी में उसे एक पॉइंटर से बदल देता है। यह अनुभव काफ़ी सहज होना चाहिए।

Git LFS के साथ रिपोजिटरी क्लोन करना (git lfs clone)

यदि आपके पास Git का नया वर्शन (>= 2.3.0) है तो git clone कमांड अपने आप आपकी LFS और गैर-LFS दोनों फ़ाइलों के लिए काम कर लेगा। यदि आप Git के पुराने वर्शन का उपयोग कर रहे हैं, तो आपको विशिष्ट git lfs clone कमांड का उपयोग करना होगा। यह आपके सामान्य क्लोन से अलग तरह से काम करता है क्योंकि यह बड़ी फ़ाइलों के लिए पॉइंटर जानकारी को देखेगा और प्रत्येक बड़ी फ़ाइल की केवल वर्किंग कॉपी को क्लोन करेगा। Git में क्लोनिंग पर अधिक जानकारी के लिए, Git Clone Branch पर यह ट्यूटोरियल देखें।

बड़ी फ़ाइलों को पुल करना (git lfs pull)

यदि आप अपनी रिपोजिटरी से बड़ी LFS फ़ाइलों को फ़ेच और चेकआउट करना चाहते हैं, तो आप git lfs pull फ़ंक्शन का उपयोग कर सकते हैं। यह साधारण git pull से अलग है, जो केवल git फ़ाइलें पुल करेगा। 

यहाँ एक उदाहरण वर्कफ़्लो है:

git checkout main # अपनी मुख्य ब्रांच चेकआउट करें 
git pull # इस ब्रांच के लिए रिमोट से नवीनतम git फ़ाइलें पुल करें 
git lfs pull # इस ब्रांच के लिए रिमोट से नवीनतम git lfs फ़ाइलें पुल करें

Git LFS उपयोग के सर्वोत्तम अभ्यास

हालाँकि Git LFS एक बेहतरीन समाधान है, फिर भी इसके अपने कुछ मुद्दे हो सकते हैं और यह हर स्थिति का सार्वभौमिक समाधान नहीं है। Git LFS का अधिकतम लाभ उठाने के लिए निम्नलिखित सर्वोत्तम अभ्यास अपनाएँ:

  • Git LFS का उपयोग केवल बड़ी बाइनरी फ़ाइलों के लिए करें, कोड या छोटी टेक्स्ट फ़ाइलों के लिए नहीं।
  • नियमित रूप से अनावश्यक फ़ाइलों को हटाने के लिए चलाएँ: git lfs prune
  • पूरी डायरेक्टरी ट्रैक करने से बचें, क्योंकि इससे प्रदर्शन संबंधी समस्याएँ और बLOAT हो सकता है
  • सुनिश्चित करें कि सभी सहयोगियों के पास Git LFS इंस्टॉल हो, ताकि फ़ाइलें मिस न हों।

यदि आप इन सामान्य दिशानिर्देशों का पालन करते हैं, तो Git LFS आपके लिए एक बेहतरीन टूल साबित होगा!

सामान्य समस्याएँ और उनके समाधान

क्योंकि Git LFS, Git का एक एक्सटेंशन है, इसके साथ अपनी समस्याएँ भी आती हैं। यह खासकर सच है क्योंकि यह रिमोट रिपोजिटरीज़ पर निर्भर करता है जिनकी अपनी दिक्कतें हो सकती हैं। यहाँ कुछ सामान्य समस्याएँ दी गई हैं जिनका आप Git LFS का उपयोग करते समय सामना कर सकते हैं और उनके उपाय।

Git LFS प्रमाणीकरण संबंधी समस्याएँ

ऐसे कई तरीके हैं जिनमें आप Git LFS के साथ प्रमाणीकरण समस्याओं का सामना कर सकते हैं। यह सुनिश्चित करने के लिए कि आपके पास सही क्रेडेंशियल्स हैं, निम्न जाँचें:

  • सही SSH कॉन्फ़िगरेशन का उपयोग करें: git config lfs.url ssh://<git-url>
  • जाँचें कि आपके पास पैरेंट ब्रांच पर पढ़ने/लिखने का एक्सेस है क्योंकि Git LFS अक्सर पैरेंट को ट्रैक करता है
  • रिमोट रिपोजिटरी से पूरी तरह साफ़-सुथरा फ़ेच/क्लोन करने का प्रयास करें

यदि समस्याएँ जारी रहती हैं और आप प्रशासक नहीं हैं, तो प्रोजेक्ट के स्वामी से संपर्क करें ताकि वे अनुमतियों में आपकी मदद कर सकें।

लार्ज फ़ाइल स्टोरेज लिमिट और कोटा

सेवाएँ Git LFS स्टोरेज पर कोटा लगा सकती हैं। उदाहरण के लिए, GitHub में Free और Pro उपयोगकर्ताओं के लिए 2GB की सीमा है और Enterprise क्लाउड उपयोगकर्ताओं के लिए प्रति फ़ाइल 5GB की सीमा है। त्रुटियों से बचने के लिए सुनिश्चित करें कि आप अपनी सेवा की सीमा से बड़ी फ़ाइलें अपलोड नहीं कर रहे हैं।

मौजूदा रिपोजिटरीज़ को Git LFS पर माइग्रेट करना

यदि किसी रिपोजिटरी में पहले से बड़ी फ़ाइलें हैं, तो उन्हें इस तरह माइग्रेट करें:

git lfs migrate import --include="*.filetype"

यह पिछड़े समय में बड़ी फ़ाइलों को LFS पॉइंटर्स से बदल देता है। 

निष्कर्ष

Git LFS बड़ी फ़ाइलों का कुशलतापूर्वक प्रबंधन करने के लिए एक आवश्यक टूल है, जो रिपोजिटरीज़ को तेज़ और हल्का बनाए रखता है। Git LFS का लाभ उठाकर, डेवलपर्स अपनी रिपोजिटरीज़ की बड़ी फ़ाइलों का सही ढंग से प्रबंधन कर सकते हैं। जब तक आप बLOAT को कम करने के सर्वोत्तम अभ्यासों का पालन करते हैं, LFS आपकी फ़ाइल ट्रैकिंग में बड़ी मदद करेगा। यदि आप Git के बारे में और सीखना चाहते हैं, तो निम्न संसाधन देखें:

Git LFS FAQs

यदि मैं Git LFS फ़ाइलों वाली रिपोजिटरी क्लोन करता हूँ तो क्या होता है?

Git के नए वर्शन पर git clone चलाने से रिपोजिटरी और LFS पॉइंटर्स अपने आप फ़ेच हो जाते हैं। यदि आप Git के पुराने वर्शन पर हैं, तो वास्तविक बड़ी फ़ाइलें डाउनलोड करने के लिए आपको git lfs pull चलाना होगा। वैकल्पिक रूप से, git lfs clone इसका कार्य स्वचालित रूप से करता है।

मैं कैसे जाँच सकता/सकती हूँ कि कौन-सी फ़ाइलें Git LFS द्वारा ट्रैक की जा रही हैं?

ट्रैक की गई फ़ाइल पैटर्न देखने के लिए git lfs track चलाएँ, और LFS का उपयोग करके स्टोर की गई वास्तविक फ़ाइलों की सूची के लिए git lfs ls-files चलाएँ।

यदि मेरा GitHub या किसी अन्य होस्टिंग सेवा पर Git LFS स्टोरेज समाप्त हो जाए तो क्या करें?

GitHub जैसी सेवाएँ स्टोरेज सीमाएँ लागू करती हैं। आप git lfs prune के साथ स्टोरेज प्रबंधित कर सकते हैं, अधिक स्पेस खरीद सकते हैं, या किसी वैकल्पिक बाहरी स्टोरेज समाधान का उपयोग कर सकते हैं।

क्या मैं सक्षम करने के बाद Git LFS का उपयोग बंद कर सकता/सकती हूँ?

हाँ, लेकिन आपको अपनी फ़ाइलों को मानक Git में वापस माइग्रेट करना होगा, इसके लिए git lfs migrate export --include="*.filetype" चलाएँ ताकि LFS ट्रैकिंग हट जाए।

विषय
Git

शीर्ष DataCamp पाठ्यक्रम

कोर्स

Git परिचय

2 घंटा
101.7K
अपने सॉफ़्टवेयर और डेटा प्रोजेक्ट्स में version control के लिए Git की मूल बातें जानें।
विवरण देखेंRight Arrow
पाठ्यक्रम शुरू करें
और देखेंRight Arrow