प्राप्त करने के लिए "घातक: जीएटी रिपॉजिटरी नहीं" जब रिमोट जोड़ने का प्रयास जीआईटी रेपो करता है


439

मैं इस ट्यूटोरियल का अनुसरण करके खुद को Git से परिचित करा रहा हूं:

रेपो मेरी स्थानीय मशीन में जोड़े जाने वाले भाग तक सब कुछ ठीक काम करता है:

git remote add nfsn ssh://USERNAME@NFSNSERVER/home/private/git/REPONAME.git

(USERNAME, NFSNSERVER और REPOAME को सही नामों से बदलने के बाद) मुझे त्रुटि मिली:

fatal: Not a git repository (or any of the parent directories): .git

क्या आप मुझे इस चरण को पूरा करने में मदद कर सकते हैं?


2
git initलेकिन यह भी सुनिश्चित करें कि आपके किसी भी उपनिर्देशिका का अपना .gitफ़ोल्डर नहीं है
जेम्स ओरेवेक डेसी

जवाबों:


908

क्या आपने एक स्थानीय Git रिपॉजिटरी में प्रवेश किया था, जिसमें यह रिमोट जोड़ा जाना चाहिए था?

क्या आपकी स्थानीय निर्देशिका में कोई .gitफ़ोल्डर है?

कोशिश करो git init


2
मैंने यह कदम पहले ही कर लिया था, लेकिन इंजन यार्ड स्थापित करने के लिए अपने इंजन यार्ड खाते की स्थापना के बाद इसे फिर से करना पड़ा।
1

3
मेरा .gitफ़ोल्डर चला गया है git initरिपॉजिटरी फ़ोल्डर को हटाने के लिए समान है, और फिर git clone ...। मुझे केवल एक करने की आवश्यकता हैpull
फ्रांसिस्को कोरालेस मोरालेस

3
@FranciscoCorralesMorales यदि आपका .gitफ़ोल्डर चला गया है, तो आप git initएक नया बनाने के लिए फिर से चला सकते हैं । इससे पहले कि आप इसे खींच सकें, इससे पहले आपको रिमोट को फिर से जोड़ना होगा।

3
स्थानीय सिस्टम से परिवर्तन सबमिट करते समय मुझे वही त्रुटि मिल रही थी। जीआईटी की कोशिश की और यह काम कर गया। धन्यवाद!
rashashish

6
मेरा है और .it और मैंने पहले से ही गिट इनिट किया था, लेकिन मुझे त्रुटि मिलीjalal@klein:~/computer_vision/py-faster-rcnn$ git add -A fatal: Not a git repository: caffe-fast-rcnn/../.git/modules/caffe-fast-rcnn
मोना जलाल

85

यदि आपकी वर्तमान वर्किंग डाइरेक्टरी Git रिपॉजिटरी के अंदर नहीं है, तो आपको यह कमांड प्राप्त करने का प्रयास करने पर यह त्रुटि मिलेगी। ऐसा इसलिए है, क्योंकि डिफ़ॉल्ट रूप से, Git एक .gitरिपॉजिटरी डायरेक्टरी (प्रोजेक्ट रूट के अंदर?) की तलाश करेगा, जैसा कि मेरे उत्तर "Git शो लॉग नहीं करेगा जब तक कि मैं प्रोजेक्ट डायरेक्टरी में नहीं हूं" :

के अनुसार सरकारी लिनक्स कर्नेल Git प्रलेखन , GIT_DIR[एक वातावरण चर] सेट एक के लिए देखो करने के लिए है .gitडिफ़ॉल्ट रूप से निर्देशिका (? वर्तमान कार्यशील निर्देशिका में):

यदि GIT_DIRपर्यावरण चर सेट किया जाता है तो यह .gitरिपॉजिटरी के आधार के लिए डिफ़ॉल्ट के बजाय उपयोग करने के लिए एक पथ निर्दिष्ट करता है।

आपको या तो cdरिपॉजिटरी / वर्किंग कॉपी में जाने की आवश्यकता होगी , या आपने पहले स्थान पर रिपॉजिटरी को इनिशियलाइज़ या क्लोन नहीं किया है, उस स्थिति में आपको उस रेपो को इनिशियलाइज़ करने की आवश्यकता है जहाँ आप रेपो को रखना चाहते हैं:

git init

या एक भंडार का क्लोन

git clone <remote-url>
cd <repository>

13
GIT_DIR का उल्लेख करने के लिए +1। नंगे रेपो में हुक के भीतर, GIT_DIR 'पर सेट है।' '.गित' के बजाय।
आम

के लिए +1 git init। आपके उत्तर को पढ़ने के बाद, मैंने कई बार रिपॉजिटरी पर यह प्रयोग किया कि मैंने क्लोन किया था , लेकिन मान्यता नहीं थी। इसलिए, ऐसा लगता है कि जब यह माना जाता है कि एक डाइरेक्टरी ट्री से चलाया जाता है git repository, जिसमें git डाइरेक्टरी की सभी फाइलें होती हैं, लेकिन ऐसा नहीं होने का दावा किया जाता हैfatal: Not a git repository (or any parent up to mount point
ElderDelp

34

मेरी समस्या यह थी कि मेरे ओएस के साथ कुछ हिचकी के लिए मेरे स्थानीय रिपॉजिटरी पर कोई भी कमांड "घातक: न कि एक गिट रिपॉजिटरी (या किसी भी पैरेंट डायरेक्टरी में से एक) के साथ समाप्त हो गई: .गित", जिसमें fsck कमांड शामिल है।

समस्या खाली HEAD फ़ाइल थी

मैं वास्तविक शाखा नाम ढूंढने में सक्षम था जिसे मैंने .गित / रेफ्स / हेड्स में काम किया था और फिर मैंने ऐसा किया:

echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD

इसने काम कर दिया।


2
मेरा HEAD फ़ाइल किसी भी कारण से दूषित हो गया था, इसलिए मैंने इसे पुनर्स्थापित कर दिया था और इस मुद्दे को ठीक कर दिया था
स्टीवन

1
आप महान पाल हैं। मेरे समय के एक टन को बचाया
वैभव साह

यह मेरा मुद्दा भी था। धन्यवाद
कार्लोस राफेल रामिरेज़

3
मेरे पास विजुअल स्टूडियो एक गिट रिबेस के दौरान खुला था और विजुअल स्टूडियो ने एक फ़ाइल परिवर्तन देखा और इसके तुरंत बाद मेरे पास मौत की नीली स्क्रीन थी। रिबूट .git के बाद / HEAD NULLS से भर गया था और जब मैं उन्हें एक पूर्ण हैश (5621afeffbabed40e3f386676068c45643644b7d) से बदल दिए .git \ refs \ रिमोट \ मूल \ मास्टर, Git काम करना शुरू किया फिर मैं भी जरूरत की तरह कहीं से पढ़ा stackoverflow.com/questions / 1115854 /… जैसा कि इसने मुझे बताया है। इसे / .ITI / इंडेक्स को डिलीट करने से पहले मुझे .git / index.lock को हटाना होगा। अब ठीक है
इवान

1
मैंने अपना काम वापस पाने की उम्मीद लगभग खो दी। बस मैं आपके समाधान को कॉपी और पेस्ट करता हूं और इसने जादू किया। धन्यवाद
मुकेश कुमार

17

नोट: यह सामान्य समस्या का जवाब नहीं है, जो ओपी की समस्या थी, लेकिन विभिन्न समस्या के लिए जहां यह त्रुटि संदेश आ सकता है। मुझे यह उत्तर लिखने के लिए नया प्रश्न करने का मन नहीं था, मुझे बताएं कि क्या मुझे इसके बजाय ऐसा करना चाहिए: पी

मुझे स्थिति मिली, सबसे अधिक संभावना कुछ दुर्घटना के भ्रष्टाचार के कारण थी, कि मुझे यह त्रुटि तब भी हुई जब मैं .gitमौजूद था।

smar@aaeru ~/P/Nominatim> git status
fatal: Not a git repository (or any of the parent directories): .git
smar@aaeru ~/P/Nominatim [128]> ls .git
COMMIT_EDITMSG  config*  FETCH_HEAD  HEAD  index  logs/  modules/  objects/  ORIG_HEAD packed-refs

चूंकि मेरे पास कुछ भी नहीं था जो वास्तव में संरक्षण की आवश्यकता थी, इसलिए मैं बस डमी के साथ चला गया, और किया ...

smar@aaeru ~/P/Nominatim [128]> git init
Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/

अभी भी काम नहीं कर रहा है, उदाहरण के लिए git logरिटर्न के रूप में fatal: bad default revision 'HEAD'। दूरस्थ थे , हालांकि वहाँ बहुत मैंने किया था git fetch --allऔर फिर बस git reset --hard origin/masterराज्य रेपो पहले से था करने के लिए अपने आप को प्राप्त करने के लिए।

ध्यान दें कि अगर कुछ अनकम्यूटेड परिवर्तन हैं, तो आप उन्हें देख सकते हैं git status, git diffऔर इसी तरह। फिर git diff yourfile > patchरीसेट चलाने से पहले।

कम से कम मेरे लिए रिफ्लॉग ( git reflog) पूरी तरह से गायब हो गया। इसलिए, यदि आप रीसेट करते हैं, और कुछ बदलाव थे जिन्हें आप रोकना चाहते थे, मुझे यकीन नहीं है कि आप उन्हें रीसेट के बाद वापस पा सकते हैं। इसलिए, सुनिश्चित करें कि आपके पास सभी परिवर्तन हैं जो आप वापस नहीं खो सकते हैं, अंततः इस कोशिश करने से पहले केवल क्लोन की प्रतिलिपि बनाकर।


मुझे मुद्दा मिल गया। और जिस तरह @Smar का उल्लेख करने की कोशिश की, लेकिन एक ही परिणाम "घातक ...."। तो, आगे क्या करना है? कोई उपाय?
अराजकता

1
दृश्य स्टूडियो का उपयोग करते समय यह समस्या उत्पन्न हुई, git initऔर git fetch --allइस समस्या को ठीक किया।
मोर्स

7
$ git status
fatal: Not a git repository:

बस अपने cmd या git शेल या किसी अन्य टर्मिनल में निम्नलिखित टाइप करें:

$ git init

6

फ़ाइल सिस्टम पर गिट परियोजना के स्थान को स्थानांतरित करने के बाद मुझे यह समस्या हुई। जब मैंने कुछ git कमांड्स को चलाया तो त्रुटि हुई, जैसे:

$ git status
fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis

मैं /home/rospasta/path_old/gitprojecta/.travis/.gitपरियोजना के पुराने स्थान के निरपेक्ष पथ में लिखा था। नए स्थान के इस पथ को मैन्युअल रूप से अपडेट करने से मेरे लिए समस्या हल हो गई।

तो मेरी समस्या एक समस्या हो सकती है या नहीं, लेकिन HTH।


5

यदि यह किसी और की मदद करता है, तो गलती से डिलीट होने के बाद मुझे यह त्रुटि संदेश मिल गया।

घातक: जीएटी रिपॉजिटरी (या किसी भी मूल निर्देशिका) का नहीं:

इसे बहाल करने से समस्या हल हो गई।


4

यदि आपकी वर्तमान निर्देशिका रिपोजिटरी नहीं है, तो कमांड लाइन / सीएलआई में आपको यह त्रुटि मिलेगी। तो, आपको पहले सीडी को रेपो में डालना होगा।


4

शायद बहुत देर हो गई लेकिन एक और समाधान जो भविष्य के आगंतुकों की मदद कर सकता है। सबसे पहले पुरानी .gitनिर्देशिका हटाएं -

rm .git

फिर git रेपो को फिर से इनिशियलाइज़ करें

git init

6
यह ध्यान दिया जाना चाहिए कि यह सभी गिट मेटाडेटा को नष्ट कर देता है जैसे कि कमिट्स। आप अपना डेटा रखेंगे, लेकिन गिट "नए सिरे से शुरू होगा" - यह अच्छी बात नहीं हो सकती है।
जोसेफ ए।

1
@ जोसेफ .: आप सही कह रहे हैं, यह सब-अफीम है। क्या कोई बेहतर उपाय है जो आप सुझा सकते हैं? फ़ोल्डर मौजूद होने के fatalबावजूद मुझे त्रुटि मिलती .gitहै।
हसन बेग

लेकिन हे, पहले से ही रिमोट रेपो पर कमिट नहीं हैं? या क्या आप वास्तव में अपने एचडी / स्थानीय स्तर पर कमिट की आवश्यकता होगी ...? @JosephA।
केवतेनव्यूरी

Coz मैं सोच रहा हूँ कि आप अभी भी git रिवर्ट जैसे सामान कर सकते हैं, git रीसेट स्थानीय रूप से कमिट जानकारी के बिना ... सही है? @JosephA।
केवतेनव्यूरी

1
यह सब कुछ मिटा रहा है! संभवतः इसका हल निकालने का सबसे बुरा तरीका है।
रिचर्ड लैंकेट 12

4

ऐसा लगता है कि आप अपने विशिष्ट फ़ोल्डर में नहीं जा रहे हैं। उदाहरण के लिए, यदि मैं बग्सनी नामक एक परियोजना पर काम कर रहा हूं और यह फ़ोल्डर d: / वर्क: कोड में सेव है, तो सबसे पहले आपको cd d: / वर्क / कोड / बग्सबनी का उपयोग करके उस फ़ोल्डर में जाना होगा, उसके बाद आपके अपने git कमांड का उपयोग जारी रख सकते हैं।


4

यहां तक ​​कि मुझे भी यही समस्या थी। मैंने एक शेल स्क्रिप्ट लिखी थी जो मेरे सभी कोड्स को एक सप्ताह के कार्य दिवसों पर मेरे git रेपो में 17:55 बजे crontab का उपयोग करके बैकअप देगी। क्रोन के लॉग देखकर मैंने उपर्युक्त समस्या को पाया।

उपरोक्त समस्या केवल तब आती है जब आप गैर-जीआईआर डीआईआर (यानी अन्य डीआईआर से जो कार्य की प्रतिलिपि नहीं है) से गिट कमांड को निष्पादित करने की कोशिश कर रहे हैं। इस ऐड को ठीक करने के लिए -C <git dir>आप जिस कमांड को निष्पादित कर रहे हैं, वह git statusहोगा git -C /dir/to/git statusऔर git add -Aहोगा git -C /dir/to/git -A


3

मेरे मामले में मैंने कछुआ एसवीएन का उपयोग किया और उसी समय विजुअल स्टूडियो जीआईटी कार्यों का भी उपयोग करने की गलती की। इसने विजुअल स्टूडियो को .गित फ़ोल्डर के अंदर हेड फाइल को लॉक कर दिया ताकि वीएस या कछुआ रेपो तक पहुंच न सके और मुझे दोनों अनुप्रयोगों से "घातक: नॉट ए जिट रेपो ..." त्रुटि मिली।

समाधान:

  1. .गित फ़ोल्डर के अंदर जाएं और "HEAD.lock" का नाम बदलकर सिर्फ "HEAD" करें
  2. एक GIT एडमिन एप्लिकेशन के लिए निर्णय लें और दूसरे को न छूएं

3

उसके लिए आपको एक कमांड दर्ज करने की आवश्यकता है जो कि बिटबकैट कमांड से गायब है

कृपया init की कोशिश करें।


2

मेरे मामले में, मैं एक ही समस्या थी जब मैं किसी भी git - कमांड (जैसे git स्टेटस) को विंडोज़ cmd का उपयोग करके आज़माता हूँ। तो क्या मैं खिड़की के लिए git स्थापित करने के बाद कर रहा हूँ https://windows.github.com/ पर्यावरण चर में , "पथ" चर पर गिट के वर्ग पथ को जोड़ें। आमतौर पर git C: / user / "उपयोगकर्ता नाम" / appdata / स्थानीय / git / bin पर संस्थापित होगा, इसे PATH पर पर्यावरण चर में जोड़ दें

और cmd पर एक और चीज आपके git रिपॉजिटरी या cd पर जाती है जहाँ आपका क्लोन आपकी विंडो पर होता है, आमतौर पर उन्हें github cd Document / Github / yourproject के तहत दस्तावेजों पर संग्रहीत किया जाएगा उसके बाद आपके पास कोई git कमांड हो सकता है

धन्यवाद


2

अपने स्रोत फ़ोल्डर में जाएं जहां स्थानीय रेपो संग्रहीत है, उदाहरण खदान में पाया जाता है c: / GitSource, फ़ोल्डर में राइट क्लिक करें, यहां गिट बैश पर क्लिक करें, फिर गिट स्थिति ...।



2

मेरे मामले में फ़ाइल .it / HEAD दूषित थी (केवल डॉट्स शामिल थी)। इसलिए मैंने इसे संपादित किया और इसकी सामग्री को इसके साथ बदल दिया:

ref: refs/heads/master

और इसने फिर से काम करना शुरू कर दिया।


1

मेरे लिए, यह मेरे .git/रास्ते में विकृत स्वामित्व से संबंधित था । rootस्वामित्व .git/HEADऔर .git/index, jenkinsउपयोगकर्ता को नौकरी चलाने से रोक रहा है।


1
यह कमांड लाइन पर प्रतिलिपि प्रस्तुत करने योग्य प्रतीत नहीं होता है। के स्वामित्व स्थापित करने के बाद .git/HEADऔर .git/indexकरने के लिए root:root, मैं अभी भी त्रुटि के बिना रिमोट जोड़ने के लिए कर रहा हूँ। जब मैं संपूर्ण .gitनिर्देशिका के स्वामित्व को बदलता हूं root, तो मुझे एक अलग त्रुटि मिलती है error: could not lock config file .git/config: Permission denied:।
काइल स्ट्रैंड

1

नीचे की त्रुटि से ऐसा लगता है कि Gits को वर्तमान निर्देशिका में .गित फ़ाइल नहीं मिली है ताकि त्रुटि संदेश फेंके।

इसलिए डायरेक्टरी से रिपॉजिटरी डायरेक्टरी में बदलें जहां आपके पास गिट से कोड चेकआउट है और फिर इस कमांड को रन करें।

  • $ गिट चेकआउट

1

मेरे मामले में मैंने पाया कि कुछ बिंदुओं से ड्राइव अक्षर के लिए खिड़कियों में गिट केस संवेदनशील हो गया।

विंडोज़ क्ली कमांड में गिट बाइनरी को अपग्रेड करने के बाद जो काम करना बंद कर देता था। उदाहरण के लिए स्क्रिप्ट में पथ D : \ bla \ file.txt था जबकि git कमांड केवल d : \ bla \ file.txt को स्वीकार किया गया था


1

git के लिए ठीक काम कर रहा था और अचानक यह fatal: Not a git repository (or any of the parent directories): .gitसंदेश दिखाई देने लगा।

मेरे लिए निश्चित नहीं है कि .गित फ़ोल्डर में क्या दूषित था, मैंने किया git clone ** newfolderऔर पूरे .गित फ़ोल्डर को मेरे दूषित / पुराने फ़ोल्डर में कॉपी कर दिया, जहां मैं त्रुटि संदेश दिखाने से पहले परिवर्तन कर रहा था।

सब कुछ वापस सामान्य हो गया और git ने मेरी बदली हुई / बिना मंचित फाइलों को भी पहचान लिया।


0

पुनर्स्थापना .git/ORIG_HEADऔर अन्य रूट .git रेपो फ़ाइलों को पुनर्स्थापित करें

बैकअप से पुनर्स्थापित करने के बाद मुझे यह त्रुटि मिली, जाहिरा तौर पर .गित निर्देशिका रूट में निहित फ़ाइलों ने इसे लक्ष्य तक नहीं बनाया था, लेकिन सभी सबफ़ोल्डर्स ने ऐसा पहले किया था जब मुझे लगा कि रेपो बरकरार था।

मैंने इसे रूट फ़ाइलों को पुनर्स्थापित करके तय किया।


0

GitLab के साथ प्रमाणीकरण समस्याओं के बाद जेनकिट Git प्लगइन के साथ मेरे पास यह मुद्दा था। जेनकिन्स 'हडसन .plugins.git.GitException: [...] stderr: GitLab: प्रोजेक्ट की तलाश कर रहा था, जिसे आप नहीं ढूंढ रहे थे। घातक: रिमोट रिपॉजिटरी से नहीं पढ़ सका। '

हालाँकि अगर मैंने जेनकिंस बॉक्स (कमांड लाइन) से 'git क्लोन' या 'git fetch' डायरेक्ट किया तो इसने इस मुद्दे पर काम किया।

उस विशेष नौकरी के लिए जेनकिंस जॉब फ़ोल्डर में संपूर्ण / कार्यक्षेत्र निर्देशिका को हटाकर समस्या हल की गई थी , उदा

rm -Rf $JENKINS_HOME/jobs/myJenkinsJob/workspace/

संभवत: स्थानीय .गित फ़ोल्डर बासी / दूषित हो गया था?


0

यह अनुमतियों के कारण भी हो सकता है। स्वामी / समूह अनुमतियों की जाँच करें और सुनिश्चित करें कि आपके पास उस डेटा तक पहुँचने के लिए पर्याप्त अनुमतियाँ हैं। मेरे मामले में, मैं एक रेपो में "git स्टेटस" चलाते समय इस त्रुटि के पार आया था जिसका स्वामित्व रूट: रूट पर सेट था। रूट के रूप में "git स्टेटस" को चलाने से मेरी समस्या हल हो गई। वैकल्पिक रूप से, यदि आप नहीं चाहते हैं कि उपयोगकर्ता / समूह स्वामित्व मूल हो: जड़, रेपो को उस चीज़ से जोड़ दें जिसमें आपकी पहुंच है।



हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.