Git एक वितरित संस्करण नियंत्रण प्रणाली है जिसका उपयोग मुख्य रूप से सॉफ़्टवेयर विकसित करते समय सोर्स कोड में परिवर्तनों को ट्रैक करने के लिए किया जाता है। GitHub, Git-आधारित संस्करण नियंत्रण के लिए एक ऑनलाइन होस्टिंग सेवा है। ये दोनों सेवाएं सॉफ़्टवेयर विकास में व्यापक रूप से उपयोग की जाती हैं। हालांकि, हाल ही में उपयोगकर्ताओं द्वारा "git" कमांड निष्पादित करने में असमर्थ होने की कई रिपोर्टें आई हैं।
आप अकेले नहीं हैं। आप सोचते हैं कि आपने Git वर्कफ़्लो में महारत हासिल कर ली है जब तक कि आप एक ऐसी त्रुटि में नहीं पड़ जाते जिसे आपने पहले कभी नहीं देखा हो। Git के साथ काम करते समय हैरान करने वाली और कभी-कभी डराने वाली त्रुटि संदेशों का सामना करना लगभग अपरिहार्य है, इसलिए याद रखने वाली पहली बात यह है कि अन्य Git उपयोगकर्ता आपकी दुर्दशा से संबंधित हो सकते हैं।
Git उपयोगकर्ता इस चिढ़ाने वाले Git Fatal: 'Origin' does not appear to be a git repository एरर से अजनबी नहीं हैं। और यदि आप नहीं जानते कि कहां देखना है तो मूल कारण ढूंढना मुश्किल हो सकता है। लेकिन, Git को छोड़ने से पहले, आप जल्दी से सीख सकते हैं कि इस त्रुटि का कारण क्या है, इसका निदान कैसे करें, और भविष्य में इससे कैसे बचें।
प्रो टिप: अपने Mac को प्रदर्शन समस्याओं, जंक फ़ाइलों, हानिकारक ऐप्स और सुरक्षा खतरों के लिए स्कैन करें जो सिस्टम समस्याओं या धीमे प्रदर्शन का कारण बन सकते हैं।
Fatal: 'Origin' does not appear to be a git repository मुद्दा क्या है?
git init कमांड एक नए Git रिपॉजिटरी के निर्माण की शुरुआत करता है। यह कमांड केवल एक फ़ोल्डर को Git रिपॉजिटरी के रूप में सेट करता है। यह एक रिपॉजिटरी को दूसरे से कनेक्ट नहीं करता है।
दूसरी ओर, git clone कमांड, एक स्थानीय रिपॉजिटरी को एक रिमोट रिपॉजिटरी से जोड़ता है। ऐसा इसलिए है क्योंकि Git जानता है कि किसी प्रोजेक्ट का कोड कहां से उत्पन्न हुआ और आपके द्वारा क्लोन किए गए स्थान का उपयोग यह अनुमान लगाने के लिए करता है कि आप कमिट कहां पुश करेंगे।
जब आप एक नया रिपॉजिटरी बनाते हैं और Git को यह निर्देश दिए बिना कोड कमिट करने का प्रयास करते हैं कि कोड कहां पुश किया जाना चाहिए, तो आपको "fatal: 'origin' does not appear to be a git repository" एरर प्राप्त होगा।
Git रिपॉजिटरी क्या है?
GIT रिपॉजिटरी में एक प्रोजेक्ट के विभिन्न संस्करणों से फ़ाइलों का संग्रह होता है। ये फ़ाइलें रिपॉजिटरी से उपयोगकर्ता के स्थानीय सर्वर में आयात की जाती हैं ताकि फ़ाइल की सामग्री में आगे अपडेट और संशोधन किए जा सकें। इन संस्करणों को बनाने और उन्हें रिपॉजिटरी के रूप में ज्ञात स्थान में सहेजने के लिए एक VCS, या संस्करण नियंत्रण प्रणाली का उपयोग किया जाता है। क्लोनिंग एक मौजूदा Git रिपॉजिटरी से विभिन्न Git टूल्स का उपयोग करके सामग्री कॉपी करने की प्रक्रिया है।
जब क्लोनिंग प्रक्रिया पूरी हो जाती है, तो उपयोगकर्ता को उसकी स्थानीय मशीन पर संपूर्ण रिपॉजिटरी प्राप्त होती है। एक बार क्लोनिंग पूरी हो जाने पर, Git मानता है कि रिपॉजिटरी पर भविष्य का सारा काम एक उपयोगकर्ता के रूप में किया जाएगा। उपयोगकर्ता नई रिपॉजिटरी भी बना सकते हैं या मौजूदा रिपॉजिटरी को हटा सकते हैं। रिपॉजिटरी को हटाने का सबसे सरल तरीका केवल रिपॉजिटरी के फ़ोल्डर को हटाना है।
Git रिपॉजिटरी के साथ काम करते समय, आप अनिवार्य रूप से उन डायरेक्टरी के साथ काम कर रहे होते हैं जिन्हें Git प्रोजेक्ट के रूप में कॉन्फ़िगर किया गया है। Git का उपयोग आपके स्थानीय कंप्यूटर या रिमोट सर्वर पर लगभग किसी भी डायरेक्टरी को बनाने के लिए किया जा सकता है।
यह सही ढंग से निदान करने के लिए कि आपका Git प्रोजेक्ट कमांड स्वीकार क्यों नहीं कर रहा है या आपकी रिमोट रिपॉजिटरी पहचानी क्यों नहीं जा रही हैं, आपको पहले यह समझना होगा कि Git रिपॉजिटरी के साथ बातचीत करने का प्रयास करते समय क्या ढूंढता है।
किसी भी डायरेक्टरी, स्थानीय या रिमोट, को Git-इनिशियलाइज़्ड होना चाहिए, जिसका अर्थ है कि आपको निम्नलिखित कमांड चलानी होगी: git init
यदि आप इस कमांड को स्थानीय डायरेक्टरी में चलाते हैं, तो वह डायरेक्टरी Git रिपॉजिटरी में परिवर्तित हो जाती है। एक सफलता संदेश दिखाई देगा, जो इंगित करेगा कि कमांड सफल रही। आप यह भी देखेंगे कि प्रत्येक Git रिपॉजिटरी में एक .git डायरेक्टरी होती है जहां महत्वपूर्ण फ़ाइलें और संदर्भ बिंदु सहेजे जाते हैं।
दूसरी ओर, रिमोट रिपॉजिटरी को इनिशियलाइज़ करते समय --bare विकल्प का उपयोग करना प्रथागत है: git init --bare
यह एक "बेयर" रिपॉजिटरी बनाता है, जो अनिवार्य रूप से एक खाली डायरेक्टरी है जिसे Git के साथ इनिशियलाइज़ किया गया है और जो इसे भेजे गए Git कमांड को प्राप्त करने और चलाने में सक्षम है। बेयर रिपॉजिटरी एक उत्कृष्ट "हब" हैं जहां से एक या अधिक Git उपयोगकर्ता किसी प्रोजेक्ट को क्लोन, पुश और पुल कर सकते हैं।
Git रिपॉजिटरी स्वचालित रूप से रिमोट रिपॉजिटरी से लिंक नहीं होती है। यदि आप पहले इसके स्थान को निर्दिष्ट किए बिना रिमोट रिपॉजिटरी में परिवर्तनों को पुश करने का प्रयास करते हैं, तो आपको "fatal: 'origin' does not appear to be a git repository" एरर प्राप्त होगा।
Fatal 'Origin' does not appear to be a git repository एरर का कारण क्या है?
जब आप किसी ऐसी डायरेक्टरी में क्लोन या अन्य कमांड चलाने का प्रयास करते हैं जिसे Git रिपॉजिटरी के रूप में मान्यता नहीं दी जाती है, तो "fatal: 'origin' does not appear to be a git repository" एरर होता है। यह संभव है कि डायरेक्टरी या रिमोट फ़ाइल पथ ने Git इनिशियलाइज़ नहीं किया, या आपके द्वारा एक्सेस करने का प्रयास किए जा रहे सक्रिय रिपॉजिटरी के रूप में फ़ाइल पथ गलत है। यहां वे कारक हैं जो इस त्रुटि को ट्रिगर करते हैं:
- मिसिंग Origin: यह त्रुटि तब होती है जब "Origin" फ़ील्ड गायब होती है। यदि "Github-Fork" का संदर्भ गायब है तो कुछ कमांड ठीक से काम नहीं करते हैं।
- गलत URL: कुछ मामलों में, एप्लिकेशन द्वारा सेट URL कॉन्फ़िगरेशन गलत हो सकता है और इसे बदलने की आवश्यकता होती है। परिणामस्वरूप, कुछ कमांड ठीक से काम नहीं कर सकते हैं।
Git अनिवार्य रूप से इंगित कर रहा है कि आप जिस रिपॉजिटरी के साथ काम करने का प्रयास कर रहे हैं वह Git प्रोजेक्ट के रूप में पहचानने योग्य नहीं है। यही कारण है कि यदि आपको लगता है कि आपने सब कुछ सही ढंग से सेट किया है तो त्रुटि निराशाजनक हो सकती है। लेकिन चिंता न करें, एक साधारण टाइपो ने त्रुटि का कारण हो सकता है।
अब हम समाधानों पर पहुंचेंगे ताकि आपको समस्या की प्रकृति की बुनियादी समझ हो। यह पता लगाने के लिए पढ़ना जारी रखें कि आप इस त्रुटि का निदान और उपचार करने के लिए क्या कर सकते हैं।
Fatal: 'Origin/Master' does not appear to be a git repository' एरर का निवारण कैसे करें
यह त्रुटि प्राप्त करना निराशाजनक हो सकता है क्योंकि यह विघटनकारी और समय लेने वाली है। "fatal origin does not appear to be a git repository" जैसे ग्लिच को होने से रोकने का एक तरीका है अपने डिवाइस को Outbyte MacAries से नियमित रूप से स्कैन करना। यह टूल छोटे मुद्दों को जमा होने और कुल अराजकता में बदलने से रोकता है।
लेकिन यदि आप इस त्रुटि का सामना करते हैं, तो ये चरण आपके लिए इसे आसानी से हल कर देंगे:
सुधार #1: Origin जोड़ें।
जब आप git init कमांड से उत्पन्न नए बने git रिपॉजिटरी में कमिट करने का प्रयास करते हैं, तो आपको "fatal: 'origin' does not appear to be a git repository" एरर मिलता है। ऐसा इसलिए है क्योंकि git init स्थानीय रिपॉजिटरी को रिमोट रिपॉजिटरी से लिंक नहीं करता है। आप इसे टाइप करके टेस्ट कर सकते हैं: git remote -v
यदि origin नाम का कोई रिमोट रिपॉजिटरी सूचीबद्ध नहीं है, तो आपको नीचे दिए गए समाधान का पालन करके इसे मैन्युअल रूप से जोड़ना चाहिए।
- "Command" और "Space" बटन को एक साथ दबाएं। यह Spotlight खोलना चाहिए।
- "Terminal" टाइप करें और "Return" दबाएं।
- निम्नलिखित कमांड दर्ज करें और "Return" कुंजी दबाएं: git remote -v
- जांचें कि क्या "Origin" नाम का एक रिमोट रिपॉजिटरी सूचीबद्ध है।
- यदि नहीं, तो इसका मतलब है कि आपका "Origin" गायब है।
- Origin जोड़ने के लिए निम्नलिखित कमांड का उपयोग करें: git remote add origin url/to/your/fork
जांचें कि क्या समस्या अभी भी मौजूद है।
सुधार #2: अपनी रिमोट रिपॉजिटरी के फ़ाइल पथ की जांच करें।
रिमोट रिपॉजिटरी से सामग्री क्लोन, पुश, या पुल करने का प्रयास करते समय एक Git उपयोगकर्ता अक्सर "origin does not appear to be a git repository fatal" एरर का सामना करेगा। रिमोट रिपॉजिटरी के फ़ाइल पथ को दोबारा जांचना सुनिश्चित करें। इसके कई दृष्टिकोण हैं।
यदि आप क्लोन कर रहे हैं, तो दोबारा जांचें कि आपके पास आवश्यक रिपॉजिटरी एक्सेस है। जब तक आप GitHub पर एक सार्वजनिक रिपॉजिटरी क्लोन नहीं कर रहे हैं, आप शायद SSH के माध्यम से कनेक्ट कर रहे हैं। इसी तरह, आपको अपने क्लोन कमांड के सिंटैक्स की जांच करनी चाहिए। यहां HTTP के माध्यम से रिपॉजिटरी से कनेक्ट करने वाले एक बुनियादी क्लोन कमांड का उदाहरण दिया गया है: git clone https://github.com/WordPress/WordPress.git
जब आप इस कमांड को अपने पसंदीदा टर्मिनल एमुलेटर में चलाते हैं, तो यह "WordPress" नामक एक डायरेक्टरी बनाएगा जिसमें सभी WordPress कोर फ़ाइलें होंगी। इसमें .git डायरेक्टरी और संपूर्ण प्रोजेक्ट इतिहास भी शामिल होगा। परिणामस्वरूप, यह डायरेक्टरी एक पूरी तरह कार्यात्मक स्थानीय git रिपॉजिटरी होगी। इसमें रिमोट रिपॉजिटरी जानकारी (GitHub पर) भी ठीक से सेट अप होगी।
हालांकि, यदि आप HTTP एक्सेस के बिना एक निजी सर्वर के साथ संचार कर रहे हैं, तो आपको उचित विशेषाधिकारों वाले सर्वर उपयोगकर्ता को शामिल करने के लिए इस सिंटैक्स को संशोधित करना होगा। यही कारण है कि निजी Git सर्वर को कॉन्फ़िगर करते समय, रिपॉजिटरी एक्सेस के साथ एक विशेष "Git" उपयोगकर्ता बनाना एक अच्छा विचार है: git clone admin@wsxdn.com:/home/user/production.git
GitHub से HTTP संस्करण के विपरीत, इस क्लोन URL में admin@wsxdn.com शामिल है। इस मामले में, "user" एक सर्वर उपयोगकर्ता है जिसके पास सर्वर के Git रिपॉजिटरी तक पहुंच और विशेषाधिकार हैं। होस्टनाम, डोमेन नाम, या जिस सर्वर से आप संपर्क करने का प्रयास कर रहे हैं उसका IP एड्रेस गंतव्य है। उपयोगकर्ता और सर्वर घोषणाएं कोलन (:) द्वारा फ़ाइल पथ से अलग की जाती हैं।
इस मामले में फ़ाइल पथ महत्वपूर्ण है। फ़ाइल पथ आपके रिपॉजिटरी के सटीक स्थान और नाम को इंगित करता है। पिछले उदाहरण में रिपॉजिटरी production.git नामक एक डायरेक्टरी है।
अपने रिपॉजिटरी डायरेक्टरी के लिए हमेशा .git एक्सटेंशन का उपयोग करें। production.git डायरेक्टरी उपयोगकर्ता के होम डायरेक्टरी में स्थित है, जो /home/user है।
आपको इस सिंटैक्स को सटीक रूप से दोहराना होगा या आपको "fatal: 'origin' does not appear to be a git repository" एरर प्राप्त होगा।
सुधार #3: Origin को Master में बदलें।
यदि आप Master से पुल करने का प्रयास कर रहे हैं, तो रिमोट रिपॉजिटरी को जोड़ने या हटाने का प्रयास करने से पहले आपको पहले Origin को Master में बदलना होगा। परिणामस्वरूप, इस चरण में, हम Origin को Master में बदलेंगे। ऐसा करने के लिए:
- "Command" और "Space" बटन को एक साथ दबाएं। यह Spotlight खोलना चाहिए।
- "Terminal" टाइप करें और "Return" दबाएं।
- Origin को master में बदलने के लिए यहां कमांड दर्ज करें: git pull origin master
जांचें कि क्या "fatal: 'origin' does not appear to be a git repository" समस्या गायब हो गई है।
सुधार #4: भ्रष्ट HEAD फ़ाइल को ठीक करें।
यदि उपरोक्त समस्या निवारण चरणों ने आपकी समस्या हल नहीं की, तो आपको HEAD फ़ाइल के साथ समस्या हो सकती है। इस फ़ाइल में एक लाइन होती है जो आपकी वर्तमान ब्रांच के पॉइंटर के रूप में कार्य करती है।
यदि आप Git में नए हैं, तो "ब्रांच" शब्द भी आपके लिए अपरिचित हो सकता है। एक ब्रांच आपके रिपॉजिटरी का एक संस्करण है जिसका उपयोग आप प्रोजेक्ट परिवर्तनों का परीक्षण करने के लिए कर सकते हैं। प्रत्येक रिपॉजिटरी में एक मुख्य ब्रांच होती है जो सच्चाई के स्रोत के रूप में कार्य करती है और वह संस्करण होना चाहिए जिसे प्रोडक्शन में तैनात किया गया है। यदि आप मुख्य ब्रांच में बदलाव करना चाहते हैं, तो आप अपने प्रोजेक्ट का एक अलग संस्करण, या ब्रांच, बना सकते हैं ताकि परिवर्तनों का परीक्षण किया जा सके। जब आप एक नई ब्रांच बनाते हैं तो Git HEAD फ़ाइल को अपडेट करता है ताकि यह आपकी वर्तमान कार्यशील ब्रांच को प्रतिबिंबित करे।
हालांकि, कुछ मामलों में HEAD फ़ाइल भ्रष्ट हो सकती है, जिसके परिणामस्वरूप Fatal: 'Origin' does not appear to be a Git Repository एरर होता है। HEAD फ़ाइल की जांच करने के लिए, आप cat .git/HEAD कमांड का उपयोग करके सामग्री प्रिंट कर सकते हैं।
जब आप इस कमांड को चलाते हैं, तो आपको अपनी वर्तमान ब्रांच का नाम देखना चाहिए। यदि इसमें वह वर्तमान ब्रांच शामिल नहीं है जिस पर आप काम कर रहे हैं, तो आपको फ़ाइल को अपडेट करना होगा। आप निम्नलिखित कमांड टाइप करके ऐसा कर सकते हैं: echo 'ref: refs/heads/<branch_name>' > .git/HEAD
निष्कर्ष
जब आप Fatal: 'Origin' does not appear to be a Git Repository एरर का सामना करते हैं तो आपको जोर देने की आवश्यकता नहीं है। यदि आपको यह समस्या प्राप्त होती है, तो ध्यान रखें कि Git आपको सूचित करने का प्रयास कर रहा है कि आपकी वर्तमान कार्यशील डायरेक्टरी ट्रैक नहीं की जा रही है, इसलिए इस लेख में उल्लिखित बुनियादी चरणों का पालन करें, जिनका सारांश नीचे दिया गया है:
- Origin को मैन्युअल रूप से जोड़ें।
- जांचें कि आपने डायरेक्टरी नाम सही ढंग से टाइप किया है।
- जांचें कि आपने रिपॉजिटरी सही ढंग से बनाई है। यदि डायरेक्टरी में .git रिपॉजिटरी की कमी है, तो रिपॉजिटरी को ठीक से इनिशियलाइज़ करने के लिए git init का उपयोग करें या मौजूदा रिपॉजिटरी को क्लोन करें।
- जांचें कि आपकी वर्तमान ब्रांच पर HEAD फ़ाइल में सही जानकारी है। यदि नहीं, तो फ़ाइल की सामग्री को ref: refs/heads/<branch_name> में बदलें।
ऊपर उल्लिखित समस्या निवारण चरणों का पालन करने से आप लगभग हर मामले में कुछ ही मिनटों में त्रुटि को हल करने में सक्षम होंगे।