2011-06-07 22 views
7

है मेरे पास एक गिट रेपो है जिसे मैं पिछले बॉक्स के लिए उसी बॉक्स पर उपयोग कर रहा हूं। आज मैं git status चलाने के लिए और त्रुटि संदेश मिलता है:गिट रेपो संदेश के साथ त्रुटि दे रहा है कि यह एक रेपो नहीं है ... लेकिन यह

fatal: Not a git repository (or any parent up to mount parent /home) 
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). 

मैं एक .git निर्देशिका है और यह करता रहा है कि रेपो के लिए है के हजारों के साथ आबादी है। मैं डर में रिपो को फिर से शुरू नहीं करना चाहता हूं कि यह इतिहास को ओवरराइट कर देगा। मैं वास्तव में इसे गिटूब से फिर से खींचना नहीं चाहता क्योंकि मुझे शाखाओं में कुछ बदलाव हुए हैं जिन्हें मैंने थोड़ी देर में जीएच तक नहीं धकेल दिया है।

संपादित करें:

मैं यथोचित यकीन है कि यह मेरी वातावरण नहीं है हूँ। अन्य गिट रेपो ठीक काम कर रहे हैं

+1

एक अस्थायी निर्देशिका में 'गिट क्लोन' करने के बारे में और मैन्युअल रूप से स्टैश किए गए परिवर्तनों के विलय को कैसे करें? –

+0

यदि आप 'cd .git' करते हैं और 'गिट लॉग' करते हैं तो यह क्या कहता है? – karmakaze

+0

@karmakaze मुझे एक ही त्रुटि संदेश मिलता है @Fredrick सुझाव के लिए धन्यवाद। मैं देखना चाहता हूं कि कुछ फाइल सिस्टम/गिट जादूगर है जो मैं आपके रेपो के बारे में खेद है – brycemcd

उत्तर

6

मैं Git की उचित स्रोत फ़ाइल से कुछ टिप्पणी पोस्ट करना चाहते हैं:

Git रेपो खोज नीचे के अनुसार किया जाता है:

/* 
* Test in the following order (relative to the cwd): 
* - .git (file containing "gitdir: <path>") 
* - .git/ 
* - ./ (bare) 
* - ../.git 
* - ../.git/ 
* - ../ (bare) 
* - ../../.git/ 
* etc. 
*/ 

और यह ascertains कि यह नीचे के रूप में एक Git रेपो है :

/* 
* Test if it looks like we're at a git directory. 
* We want to see: 
* 
* - either an objects/ directory _or_ the proper 
* GIT_OBJECT_DIRECTORY environment variable 
* - a refs/ directory 
* - either a HEAD symlink or a HEAD file that is formatted as 
* a proper "ref:", or a regular file HEAD that has a properly 
* formatted sha1 object name. 
*/ 

देखें कि आपके .git में क्या गलत है। यह HEAD के @Chris निकोला के उत्तर के साथ संबंधों को कम करता है

+0

अच्छी कॉल। ऐसा लगता है कि मेरी ऑब्जेक्ट निर्देशिका दूषित हो गई है .../sigh। धन्यवाद @manojilds। – brycemcd

0

किसी भी अन्य निर्देशिका में क्लोन करें। आप ऑब्जेक्ट को नए रेपो में .git फ़ोल्डर में स्टैश के साथ मूल रेपो में .git dir से कॉपी कर सकते हैं। किसी भी फाइल को छोड़ दें जो ओवरराइट किया जाएगा। फिर आप स्टैश पॉइंटर्स और गिटक की प्रतिलिपि बनाने में सक्षम होना चाहिए - आपको उन्हें दिखाना चाहिए।

2

सटीक कारण कहना मुश्किल है लेकिन आपका .git किसी भी तरह दूषित होना चाहिए। एक ब्लॉग पोस्ट here है जहां कुछ लड़के की अपनी हेड फ़ाइल का नाम बदलकर अपने सिस्टम पर सभी लोअरकेस में बदल दिया गया था जिससे किसी समस्या का कारण बन गया। यह नहीं कह रहा कि यह आपकी विशेष समस्या है लेकिन आप .git फ़ोल्डर पर नज़दीकी दिखना चाहेंगे।

आप एक नए फ़ोल्डर में जिथब से चेकआउट करने का प्रयास कर सकते हैं और फिर मतभेदों के लिए दो .git फ़ोल्डरों की तुलना कर सकते हैं।

+1

यदि यह ओपी के लिए समस्या नहीं है, तो मैं अत्यधिक सुझाव देता हूं कि आप एक नया प्रश्न बनाएं और फिर इसके उत्तर के रूप में इसका जवाब दें।यह काफी ऊंचा होना चाहिए ताकि गिट समस्याओं की खोज करने वाले किसी भी व्यक्ति को यह मिल सके। बहुत उपयोगी जानकारी। –

+0

मैं मानता हूं कि, वास्तव में मेरे साथ ऐसा कभी नहीं हुआ था, लेकिन मैं इसे एक अच्छा विंडोज समस्या निवारण चरण देख सकता था, हालांकि बहुत से लोग एफएटी/वीएफएटी सिस्टम का उपयोग नहीं करते हैं, इसलिए मुझे नहीं पता कि यह वास्तव में कितनी बार होगा। –

+0

मुझे आज भी इसी तरह की समस्या थी, मेरे मामले में मैंने एक बाहरी एनटीएफएस ड्राइव पर भंडार बैकअप लिया, और HEAD फ़ाइल जो कि sygink था। Git/refs/head/master की प्रतिलिपि नहीं बनाई गई थी। एक 'ln -s .git/refs/head/master .git/HEAD' ने भंडार को ठीक किया ... – l4mpi

0

एक और संभावना यह हो सकती है कि आपकी गिट फाइलों की अनुमति दूषित हो गई है। यह सुनिश्चित करने के लिए जांचें कि आपके पास अनुमतियां पढ़ी गई हैं।

मुझे एक ही समस्या है जब कंप्यूटर में sshing करते समय मेरी अनुमति गड़बड़ हो जाती है।

-1

जांचें कि क्या आप यह आदेश सही निर्देशिका से दे रहे हैं या नहीं। मुझे एक ही त्रुटि का सामना करना पड़ा था। तब मैं निर्देशिका में गया जहां .git मौजूद है और कमांड दिया। यह ठीक से काम कर रहा है।

संबंधित मुद्दे