Git में रिपॉजिटरी: यह क्या है, कितने प्रकार हैं और कैसे काम करते हैं

लेखक: IT Sectr प्रकाशित: 2026-05-09 पढ़ने का समय: 8 मिनट

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

मुख्य बातें

  • Git रिपॉजिटरी — प्रोजेक्ट डायरेक्टरी है जिसमें .git सर्विस फ़ोल्डर होता है जहाँ बदलावों का पूरा इतिहास संग्रहीत होता है।
  • स्थानीय रिपॉजिटरी — डेवलपर के कंप्यूटर पर स्थित होती है और इंटरनेट कनेक्शन के बिना कोड पर काम करने देती है।
  • दूरस्थ रिपॉजिटरी — GitHub, GitLab या Bitbucket सर्वर पर होस्ट की जाती है और प्रतिभागियों के बीच सिंक्रनाइज़ेशन के लिए काम आती है।
  • Git — डेटा को बदलावों की सूची के बजाय फ़ाइलों के स्नैपशॉट के रूप में संग्रहीत करता है, जो ब्रांचिंग और मर्जिंग संचालन को तेज़ करता है।
  • वर्जन कंट्रोल सिस्टम — एक ही प्रोजेक्ट पर एक साथ काम करने की समस्या को हल करता है, कोड मर्ज करते समय टकराव को रोकता है।

Git में रिपॉजिटरी क्या है

Git रिपॉजिटरी — एक डेटा संरचना है जिसमें वर्जन कंट्रोल सिस्टम प्रोजेक्ट फ़ाइलों में बदलावों के इतिहास का वर्णन करने वाले मेटाडेटा और ऑब्जेक्ट संग्रहीत करता है। जब डेवलपर git init कमांड से रिपॉजिटरी को इनिशियलाइज़ करता है, Git प्रोजेक्ट रूट में एक छिपा हुआ फ़ोल्डर .git बनाता है।

इस फ़ोल्डर के अंदर सिस्टम के संचालन के लिए आवश्यक सभी ऑब्जेक्ट, संदर्भ और कॉन्फ़िगरेशन फ़ाइलें होती हैं। रिपॉजिटरी किसी विशिष्ट स्थान से बंधी नहीं होती — डेवलपर इसे स्थानीय रूप से बना सकता है और फिर किसी दूरस्थ सर्वर से जोड़ सकता है।

Git वितरित रिपॉजिटरी मॉडल का उपयोग करता है: प्रोजेक्ट का प्रत्येक सदस्य अपने कंप्यूटर पर इतिहास की पूरी प्रतिलिपि रखता है। इसका मतलब है कि अधिकांश संचालन — कमिट, इतिहास देखना, ब्रांच बनाना — सर्वर से संपर्क किए बिना स्थानीय रूप से निष्पादित होते हैं।

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

स्थानीय और दूरस्थ रिपॉजिटरी

स्थानीय रिपॉजिटरी — डेवलपर के कंप्यूटर पर प्रोजेक्ट की प्रतिलिपि है। इसमें कमिट, ब्रांच और टैग का पूरा इतिहास होता है और यह नेटवर्क कनेक्शन के बिना commit, branch, merge और rebase संचालन करने देती है।

दूरस्थ रिपॉजिटरी — सर्वर पर होस्ट की जाती है और टीम के सभी सदस्यों के लिए सिंक्रनाइज़ेशन बिंदु के रूप में काम करती है। डेवलपर git push कमांड से अपने बदलाव भेजते हैं और git pull कमांड से दूसरों के बदलाव लेते हैं।

स्थानीय और दूरस्थ रिपॉजिटरी के बीच कनेक्शन remote origin — Git कॉन्फ़िगरेशन में संग्रहीत सर्वर URL — के माध्यम से कॉन्फ़िगर किया जाता है। एक स्थानीय रिपॉजिटरी कई दूरस्थ रिपॉजिटरी से जुड़ सकती है, जो फ़ोर्क के साथ काम करते समय उपयोगी है।

इस मॉडल का मुख्य लाभ यह है कि डेवलपर ऑफ़लाइन मोड में कोड पर काम कर सकता है और केवल परिणाम भेजने के लिए तैयार होने पर बदलावों को सिंक्रनाइज़ कर सकता है।

स्थानीय और दूरस्थ रिपॉजिटरी के बीच अंतर

विशेषतास्थानीयदूरस्थ
स्थानडेवलपर के कंप्यूटर परसर्वर पर (GitHub, GitLab)
नेटवर्क के बिना पहुँचसभी संचालनों तक पूर्ण पहुँचकनेक्शन के बिना उपलब्ध नहीं
सिंक्रनाइज़ेशनदूरस्थ के साथ Push/Pullस्थानीय से push स्वीकार करता है
बैकअपडेटा हानि से सुरक्षित नहींबैकअप के साथ सर्वर पर संग्रहीत

Git रिपॉजिटरी में डेटा कैसे संग्रहीत करता है

Git का संग्रहण मॉडल अन्य वर्जन कंट्रोल सिस्टम से मौलिक रूप से भिन्न है। संस्करणों के बीच बदलावों (डेल्टा) की सूची संग्रहीत करने के बजाय, Git प्रत्येक कमिट के समय सभी प्रोजेक्ट फ़ाइलों के पूर्ण स्नैपशॉट संग्रहीत करता है।

रिपॉजिटरी में प्रत्येक ऑब्जेक्ट एक अद्वितीय 40-अक्षर SHA-1 हैश द्वारा पहचाना जाता है। यदि फ़ाइल सामग्री कमिट के बीच नहीं बदली है, Git नया ऑब्जेक्ट नहीं बनाता बल्कि मौजूदा का पुनः उपयोग करता है — इससे जगह बचती है।

Git चार प्रकार के ऑब्जेक्ट का उपयोग करता है: blob (फ़ाइल सामग्री), tree (डायरेक्टरी संरचना), commit (मेटाडेटा के साथ स्नैपशॉट) और tag (कमिट का नामित संदर्भ)। सभी ऑब्जेक्ट .git/objects फ़ोल्डर में संग्रहीत होते हैं।

Git Internals के अनुसार, Git का ऑब्जेक्ट मॉडल डेटा अखंडता सुनिश्चित करता है: फ़ाइल सामग्री में कोई भी बदलाव नया हैश उत्पन्न करता है, जिससे इतिहास में बिना पकड़े बदलाव करना असंभव हो जाता है।

.git फ़ोल्डर की संरचना

.git फ़ोल्डर रिपॉजिटरी का हृदय है। इसके बिना Git बदलावों को ट्रैक नहीं कर सकता, और सामान्य डायरेक्टरी केवल फ़ाइलों का एक संग्रह बनी रहती है। इस फ़ोल्डर की संरचना को समझने से रिपॉजिटरी समस्याओं का निदान करने में मदद मिलती है।

  • objects/ — रिपॉजिटरी के सभी ऑब्जेक्ट: blobs, trees, commits, tags। संपीड़ित रूप में संग्रहीत।
  • refs/ — कमिट के संदर्भ: heads (ब्रांच), tags (लेबल), remotes (दूरस्थ ब्रांच)।
  • HEAD — फ़ाइल जो वर्तमान सक्रिय ब्रांच या कमिट को इंगित करती है।
  • config — रिपॉजिटरी सेटिंग्स: remote URL, उपयोगकर्ता नाम, ईमेल और अन्य पैरामीटर।
  • index — स्टेजिंग एरिया जहाँ Git कमिट के लिए तैयार फ़ाइलों के बारे में जानकारी संग्रहीत करता है।
  • logs/ — संदर्भ अद्यतन लॉग (reflog) जो HEAD और ब्रांच की गतिविधियों का इतिहास संग्रहीत करते हैं।

HEAD फ़ाइल विशेष ध्यान देने योग्य है। सामान्य स्थिति में इसमें ब्रांच का प्रतीकात्मक संदर्भ होता है, उदाहरण के लिए ref: refs/heads/main. detached HEAD स्थिति में यह सीधे कमिट को इंगित करता है — इसका मतलब है कि नए कमिट किसी भी ब्रांच से संलग्न नहीं होंगे।

रिपॉजिटरी के साथ बुनियादी संचालन

Git रिपॉजिटरी के साथ काम करने में बुनियादी संचालन का एक सेट शामिल है जो डेवलपर प्रतिदिन करता है। प्रत्येक संचालन नए ऑब्जेक्ट जोड़कर या संदर्भों को स्थानांतरित करके रिपॉजिटरी की स्थिति बदलता है।

  • git init — वर्तमान डायरेक्टरी में एक नई खाली रिपॉजिटरी बनाता है। Git प्रारंभिक संरचना के साथ .git फ़ोल्डर बनाता है।
  • git clone — मौजूदा दूरस्थ रिपॉजिटरी को सभी कमिट इतिहास के साथ स्थानीय मशीन पर कॉपी करता है।
  • git add — फ़ाइलों में बदलावों को स्टेजिंग एरिया (इंडेक्स) में जोड़ता है, उन्हें कमिट के लिए तैयार करता है।
  • git commit — इंडेक्स से डेटा के आधार पर प्रोजेक्ट का स्नैपशॉट बनाता है और इसे नए कमिट ऑब्जेक्ट के रूप में संग्रहीत करता है।
  • git push — स्थानीय रिपॉजिटरी से दूरस्थ रिपॉजिटरी में नए कमिट भेजता है, सर्वर पर ब्रांच को अपडेट करता है।
  • git pull — दूरस्थ रिपॉजिटरी से नए कमिट लाता है और उन्हें वर्तमान स्थानीय ब्रांच में मर्ज करता है।

push और pull संचालन एकमात्र ऐसे हैं जिनके लिए दूरस्थ सर्वर से कनेक्शन आवश्यक है। अन्य सभी संचालन पूरी तरह से स्थानीय रूप से निष्पादित होते हैं, जो बड़े इतिहास मात्रा में भी उच्च गति सुनिश्चित करते हैं।

रिपॉजिटरी में फ़ाइल का जीवनचक्र

रिपॉजिटरी में प्रत्येक फ़ाइल चार अवस्थाओं से गुज़रती है: untracked (ट्रैक नहीं की गई), modified (संशोधित), staged (तैयार) और committed (कमिट की गई)। Git केवल उन फ़ाइलों को ट्रैक करता है जिन्हें git add के माध्यम से स्पष्ट रूप से जोड़ा गया है या जो पहले से कमिट इतिहास में हैं।

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

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

  • GitHub — 100 मिलियन से अधिक रिपॉजिटरी वाला सबसे बड़ा प्लेटफ़ॉर्म। Actions, Pull Requests, Issues और Wiki प्रदान करता है। सार्वजनिक प्रोजेक्ट के लिए मुफ़्त।
  • GitLab — एकीकृत CI/CD, Container Registry और अंतर्निर्मित DevOps पाइपलाइन वाला प्लेटफ़ॉर्म। SaaS और self-hosted संस्करण के रूप में उपलब्ध।
  • Bitbucket — Jira और Trello एकीकरण के साथ Atlassian का समाधान। लचीली एक्सेस सेटिंग्स के कारण कॉर्पोरेट वातावरण में लोकप्रिय।

प्लेटफ़ॉर्म का चुनाव टीम के आकार, गोपनीयता आवश्यकताओं और आवश्यक एकीकरण पर निर्भर करता है। मोबाइल डेवलपमेंट के लिए अक्सर GitHub को चुना जाता है क्योंकि इसका व्यापक सामुदायिक समर्थन और iOS और Android के लिए CI/CD उपकरणों के साथ एकीकरण है।

रिपॉजिटरी के साथ काम करने के कमांड उदाहरण

एक व्यावहारिक परिदृश्य पर विचार करें: एक डेवलपर मौजूदा रिपॉजिटरी को क्लोन करता है, एक नई ब्रांच बनाता है, बदलाव करता है और उन्हें सर्वर पर भेजता है। प्रत्येक कमांड रिपॉजिटरी के विभिन्न घटकों के साथ काम करने का प्रदर्शन करता है।

bash
# दूरस्थ रिपॉजिटरी को क्लोन करना
git clone https://github.com/user/mobile-app.git

# प्रोजेक्ट डायरेक्टरी में जाना
cd mobile-app

# नई फ़ीचर ब्रांच बनाना और उस पर स्विच करना
git checkout -b feature/auth

# संशोधित फ़ाइलों की स्थिति जाँचना
git status

# सभी बदलावों को स्टेजिंग एरिया में जोड़ना
git add .

# विवरण के साथ कमिट बनाना
git commit -m "Add authentication module"

# दूरस्थ रिपॉजिटरी में बदलाव भेजना
git push origin feature/auth

git status कमांड दैनिक कार्य में सबसे उपयोगी कमांड में से एक है। यह दिखाता है कि कौन सी फ़ाइलें संशोधित हैं, कौन सी कमिट के लिए तैयार हैं और कौन सी Git द्वारा बिल्कुल ट्रैक नहीं की जा रही हैं।

कमिट इतिहास देखना

रिपॉजिटरी इतिहास का विश्लेषण करने के लिए git log कमांड का विभिन्न फ़ॉर्मेटिंग फ़्लैग के साथ उपयोग किया जाता है। यह कमिट का कालक्रम, उनके लेखक, तिथियाँ और SHA-1 पहचानकर्ता प्रदर्शित करता है।

bash
# ब्रांच ग्राफ़ विज़ुअलाइज़ेशन के साथ इतिहास देखना
git log --oneline --graph --all

# किसी विशिष्ट कमिट में बदलाव देखना
git show a1b2c3d

# वर्तमान स्थिति की अंतिम कमिट से तुलना करना
git diff HEAD

# किसी विशिष्ट फ़ाइल का इतिहास देखना
git log --follow src/MainActivity.kt

--graph फ़्लैग ब्रांचिंग का ASCII ग्राफ़ प्रदर्शित करता है, जो कई ब्रांच पर सक्रिय कार्य वाली रिपॉजिटरी में विशेष रूप से उपयोगी है। बार-बार रिलीज़ वाले मोबाइल प्रोजेक्ट के लिए, विज़ुअल ग्राफ़ डेवलपमेंट संरचना का तुरंत आकलन करने में मदद करता है।

अक्सर पूछे जाने वाले प्रश्न

रिपॉजिटरी प्रोजेक्ट से कैसे भिन्न है?

रिपॉजिटरी बदलावों के इतिहास के साथ कोड का तकनीकी भंडार है। प्रोजेक्ट एक व्यापक अवधारणा है जिसमें रिपॉजिटरी, कार्य प्रबंधन प्रणाली, दस्तावेज़ीकरण और विकास प्रक्रियाएँ शामिल हैं। एक प्रोजेक्ट में कई रिपॉजिटरी हो सकती हैं।

GitHub पर रिपॉजिटरी कैसे बनाएँ?

New बटन पर क्लिक करके GitHub वेब इंटरफ़ेस के माध्यम से एक नई रिपॉजिटरी बनाएँ। नाम, विवरण और एक्सेस स्तर निर्दिष्ट करें। फिर रिपॉजिटरी को स्थानीय मशीन पर क्लोन करें या git remote add origin के माध्यम से मौजूदा स्थानीय रिपॉजिटरी से लिंक करें।

क्या हटाई गई रिपॉजिटरी को पुनर्स्थापित किया जा सकता है?

यदि दूरस्थ रिपॉजिटरी सर्वर से हटा दी गई है लेकिन कम से कम एक डेवलपर के पास स्थानीय प्रतिलिपि है, तो रिपॉजिटरी को पुनर्स्थापित किया जा सकता है। बस एक नई दूरस्थ रिपॉजिटरी बनाएँ और पूरे इतिहास के साथ स्थानीय प्रतिलिपि से git push --force निष्पादित करें।

रिपॉजिटरी फ़ोर्क क्या है?

फ़ोर्क आपके खाते पर किसी और की रिपॉजिटरी की प्रतिलिपि है। आपको इतिहास की पूरी प्रतिलिपि मिलती है और आप मूल को प्रभावित किए बिना कोई भी बदलाव कर सकते हैं। फ़ोर्क का उपयोग Pull Request के माध्यम से ओपन-सोर्स प्रोजेक्ट में भाग लेने के लिए किया जाता है।

रिपॉजिटरी का आकार कैसे कम करें?

ऑब्जेक्ट को संपीड़ित करने और अप्राप्य डेटा को हटाने के लिए git gc का उपयोग करें। git filter-branch या git filter-repo के माध्यम से इतिहास से बड़ी फ़ाइलें हटाएँ। बाइनरी फ़ाइलों वाले प्रोजेक्ट के लिए Git LFS (Large File Storage) पर विचार करें।

सारांश

  • Git रिपॉजिटरी — पूर्ण बदलाव इतिहास के साथ कोड भंडार है, जहाँ प्रत्येक कमिट एक निश्चित समय पर सभी प्रोजेक्ट फ़ाइलों का स्नैपशॉट है।
  • स्थानीय रिपॉजिटरी — डेवलपर के कंप्यूटर पर संग्रहीत होती है और नेटवर्क कनेक्शन के बिना Git संचालन का पूरा सेट समर्थित करती है।
  • दूरस्थ रिपॉजिटरी — push और pull के माध्यम से टीम के काम को सिंक्रनाइज़ करती है, सभी प्रतिभागियों के लिए एक सत्य स्रोत प्रदान करती है।
  • .git फ़ोल्डर — इसमें सभी सेवा जानकारी होती है: ऑब्जेक्ट, ब्रांच संदर्भ, कॉन्फ़िगरेशन और reflog संचालन जर्नल।
  • GitHub, GitLab और Bitbucket — अतिरिक्त CI/CD उपकरणों के साथ दूरस्थ रिपॉजिटरी होस्ट करने के मुख्य प्लेटफ़ॉर्म हैं।
  • Git का ऑब्जेक्ट मॉडल — प्रत्येक ऑब्जेक्ट की पहचान करने के लिए SHA-1 हैश का उपयोग करता है, जो रिपॉजिटरी डेटा अखंडता की गारंटी देता है।
  • सुझाव: दिन में कम से कम एक बार कमिट करें और काम का प्रत्येक चरण पूरा करने के बाद दूरस्थ रिपॉजिटरी से सिंक्रनाइज़ करें।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें