Git 'घातक: नई अनुक्रमणिका फ़ाइल लिखने में असमर्थ'


128

मैंने इस बारे में कई अन्य सूत्र देखे हैं और वे मदद नहीं करते हैं।

मेरे पास एक बहुत ही साधारण रेपो है - दो जावास्क्रिप्ट फाइलें। मैकबुक पर मेरे पास 100+ जीबी है। जब मैं फ़ाइलों को एक उपनिर्देशिका में स्थानांतरित करने की कोशिश करता हूं और स्थानीय स्तर पर परिवर्तनों को प्राप्त करता हूं ...

घातक: नई अनुक्रमणिका फ़ाइल लिखने में असमर्थ

यह तब होता है जब मैं टर्मिनल में सभी कार्य करता हूं या यदि मैं GUT जैसे SourceTree का उपयोग करता हूं। इसके अतिरिक्त, फ़ाइलों में से एक लॉक हो जाती है और जब तक मैं लॉग इन और बैक नहीं करता तब तक मैं कार्यशील निर्देशिका को हटा नहीं सकता।

ये क्यों हो रहा है? क्या ताला मंचन से कुछ रोक रहा है? यदि हां, तो मैं ओएस एक्स पर समस्या फ़ाइल को क्या / कैसे अनलॉक करूं ?? रिमोट रेपो Google कोड है, अगर इससे कोई फर्क पड़ता है, हालांकि मैं अभी तक रिमोट पर जोर नहीं दे रहा हूं। सब कुछ स्थानीय है।


यकीन नहीं है कि इसके बजाय सुपरयूज़र जाना चाहिए ?
MMM

संभवत: पहुँच अधिकार के साथ एक समस्या (उपयोगकर्ता चल रहे सभी को रेपो की अनुमति नहीं लिखता)
नेविक रेहेल

एसओ और एसयू में इसके बारे में सूत्र हैं। मुझे लगता है कि प्रश्न या तो समान रूप से अच्छी तरह से काम करता है। नेविक, रेपो के लिए अनुमतियाँ ./gitफ़ोल्डर सहित 777 हैं ।
जेफ

आप इस मुद्दे को कब देखते हैं? क्या यह तब होता है जब आप "git mv" या "git add" करते हैं?
मयूर नगेकर

जवाबों:


221

मेरे मामले में, डिस्क अंतरिक्ष से बाहर चली गई, इसलिए मुझे अंतरिक्ष बनाने के लिए हार्ड ड्राइव से फ़ाइलों को हटाना पड़ा।


64

मुझे पिछले कुछ दिनों से यही समस्या हो रही है। मूल रूप से, मेरी जानकारी के बिना पूरे रेपो को एक नई फाइलसिस्टम में ले जाया गया था, जब मैंने गिट की स्थिति को चलाने की कोशिश की, तो यह अचानक रिपोर्ट कर रहा था कि रेपो में हर फाइल को udpated किया गया था।

संभव समाधान

तो, बहुत गूगल दस्त के बाद, मैंने निम्नलिखित कोशिश की:

  • बदलते हैं .गीट पेमेंट (एक ही मुद्दा)
  • बदलते .it / अनुक्रमणिका अनुमतियाँ (एक ही समस्या)
  • Git ऐड-इन करने के लिए सभी परिवर्तनों को प्रतिबद्ध (एक ही मुद्दा)
  • gm rm-ing हटाए गए फ़ाइलों को, क्योंकि वे फ़ाइल नाम की रिपोर्ट कर रहे थे बहुत लंबी त्रुटियाँ (एक ही समस्या)
  • git रीसेट (सॉफ्ट | हेड | हार्ड) (एक ही मुद्दा)
  • साफ स्वच्छ (एक ही मुद्दा)
  • विंडोज़ डिफेंडर बंद करना (एक ही मुद्दा)
  • अपडेटिंग गिट (एक ही मुद्दा)
  • विभिन्न git क्लाइंट (मैं gitbash का उपयोग करता हूं) (एक ही मुद्दा)
  • 1 के बजाय 2 कॉफ़ी पीना (एक ही मुद्दा)

tl: dr - गंदा घोल

केवल एक चीज जो इस मुद्दे को हल करने में कामयाब रही, वह थी इंडेक्स फाइल को कॉपी करना, मूल को हटाना और कॉपी का नाम बदलना।

मुझे पता है कि यह वास्तव में एक 'समाधान' नहीं है, लेकिन अब इसका जादुई रूप से काम कर रहा है> <, सभी फाइलों / शाखाओं के साथ बरकरार है। अगर किसी को पता है कि यह काम क्यों हो सकता है, तो बताएं।


82
अभी तक एक और कारण मिला: आप डिस्क स्थान से बाहर हो सकते हैं।
लेन्नर्टक्ल्

21
मेरे मामले में, Google ड्राइव फ़ाइलें अपलोड कर रहा था (वे बैकअप कर रहे थे) और प्रक्रिया के दौरान वे बंद थे। इसे अपलोड करने के बाद, कमिट ने काम किया।
कृत्जन ओ।

3
Google ड्राइव के बारे में टिप के लिए धन्यवाद। मेरे पास एक ही मुद्दा था, लेकिन ड्रॉपबॉक्स के साथ।
hgolov

1
रेस्टार्ट ने मेरे लिए काम किया। आधा खाली, 22 टीबी साझा ड्राइव पर काम कर रहा है, इसलिए अंतरिक्ष एक मुद्दा नहीं था।
वेन एफ। कास्की

1
आपके "डर्टी सॉल्यूशन" ने मेरे लिए काम किया (एक पिछले इंडेक्स फाइल में लौटा, फिर से जोड़ा और फिर से सभी बदलावों को फिर से लागू किया)
Trust_words

19

मेरे मामले में, ड्रॉपबॉक्स सिंक को रोकने से समस्या हल हो गई


17

मैं एक मैक पर एक ही मुद्दा था। यह फाइल सिस्टम ACL के कारण लगता है। chmod -RN /path/to/repoACL को खाली करने का प्रयास करें । ऐसा करने के बाद मैं बदलाव करने में सक्षम था। अनुक्रमणिका फ़ाइल की प्रतिलिपि बनाने के लिए ट्रिक का उपयोग करना, मूल को हटाना और प्रतिलिपि वापस ले जाना एक ही परिणाम प्राप्त किया।


यदि आपके उपयोगकर्ता खाते में हाल ही में कोई अनुमति समस्याएँ थीं, तो यह आपको इस समस्या में चलाने का कारण बना सकता है। मेरे मामले में, यह एक सक्रिय निर्देशिका एकीकरण मुद्दा था जिसने मुझे समस्याग्रस्त एसीएल के साथ छोड़ दिया।
क्रिश

17

यदि आपके पास किसी प्रकार की ऑनलाइन सिंकिंग सेवा, जैसे कि Google ड्राइव या ड्रॉपबॉक्स में अपना गिटब सेटअप है, तो सिंकिंग को अक्षम करने का प्रयास करें क्योंकि सिंकिंग सेवा फ़ाइल को पढ़ने / लिखने की कोशिश करती है क्योंकि गिटब वही करने की कोशिश करता है, जिससे गिटबब काम नहीं कर रहा है। सही ढंग से।


यह वह उपाय है जो मेरे लिए काम करता है। धन्यवाद!
मैकेंडो

7

यह मेरे साथ हुआ है कि फ़ाइल .गित / इंडेक्स एक अन्य प्रक्रिया (मेरा स्थानीय विकास वेब सर्वर) द्वारा उपयोग में थी। मैंने इस प्रक्रिया को बंद कर दिया और फिर इसने काम किया।


6

क्लोज़िंग विज़ुअल स्टूडियो कोड (कि मेरे मामले में एक ऑटो-अपलोडर बैकग्राउंड जॉब फ़ाइल-सेव पर चल रहा है) ने मेरे लिए समस्या हल कर दी।

समाधान के लिए श्रेय: मेरे मित्र और सहयोगी अर्नेल।


मैं NodeJS सर्वर बंद कर दिया है, जहां मेरे AngularJS अनुप्रयोग चल रहा था और सूचकांक को अनलॉक कर दिया गया था
राडू Linu


6

मेरे मामले में, समाधान केवल नए उपयोगकर्ता के लिए अनुमति जोड़ रहा था।

जब मैंने नया OS स्थापित किया, तो अपने रिपॉज को इधर-उधर घुमाया और यह इस सटीक त्रुटि को दिखा रहा था कि मैंने रूट फ़ोल्डर का चयन किया और फिर उपयोगकर्ता को सभी के लिए प्रमाणित जोड़ा यहाँ छवि विवरण दर्ज करें


3

मेरे पास .it फ़ोल्डर में सभी फ़ाइलों से जुड़ी एसीएल (किसी तरह) थी।

इसे ls -le.git फ़ोल्डर से जांचें ।

आप chmod -N(फ़ोल्डर / फ़ाइल के लिए) या chmod -RN(पुनरावर्ती) के साथ ACL निकाल सकते हैं


3

मुझे लगता है कि कुछ बैकग्राउंड बैकअप सॉल्यूशंस जैसे कि Google बैकअप और सिंक फाइल को ऐक्सेस ब्लॉक करना। मैंने एप्लिकेशन को बंद कर दिया और सॉर्सेट्री के पास कोई मुद्दा नहीं था। लगता है कि ड्रॉपबॉक्स भी ऐसा ही करता है (@tonymayoral)।


2

मेरे मामले में यह एक समवर्ती चलने वाला ईजीट था। ग्रहण को फिर से शुरू करने के बाद यह हमेशा की तरह काम करता है।


सवाल यह है कि 'त्रुटि संदेश क्यों हो रहा है?' और यह उत्तर एक और संभावित कारण का वर्णन करता है।
लूट

2

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


2

पर्याप्त जगह नहीं होना एक मुद्दा है। सफाई करें और फिर से प्रयास करें


2

मुझे भी यही समस्या थी। मैंने अपना कंप्यूटर पुनः आरंभ किया और समस्या हल हो गई।


1

क्या आपने 'जोड़ जोड़' की कोशिश की। । क्या यह सब बदल जाएगा? (आप जीआईएटी रीसेट एचईएडी द्वारा अनावश्यक जोड़ा फ़ाइलों को हटा सकते हैं)


1

त्रुटि संदेश का fatal: Unable to write new index fileअर्थ है कि हम नई सामग्री को git index फाइल में नहीं लिख सकते .git\index( git index के बारे में अधिक जानकारी के लिए यहां देखें )। इस प्रश्न के सभी उत्तरों की समीक्षा करने के बाद, मैं निम्नलिखित मूल कारणों का सारांश प्रस्तुत करता हूं:

  • नई सामग्री का आकार डिस्क उपलब्ध क्षमता से अधिक है। ( समाधान) : डिस्क स्थान साफ ​​करें)
  • उपयोगकर्ताओं के पास इस फ़ाइल का अधिकार नहीं है। ( समाधान : अनुमति प्रदान करें)
  • उपयोगकर्ताओं की अनुमति है, लेकिन .git\indexअन्य उपयोगकर्ताओं या प्रक्रियाओं द्वारा लॉक किया गया है। ( समाधान : फ़ाइल अनलॉक करें)

लिंक पता करें कि विंडोज में कौन सी प्रक्रिया किसी फाइल या फोल्डर को लॉक कर रही है, एक विशिष्ट फाइल को लॉक करने की प्रक्रिया का पता लगाने के लिए निम्नलिखित दृष्टिकोण को निर्दिष्ट करता है:

SysInternals Process Explorer - Find> Find Handle या DLL पर जाएं। "हैंडल या DLL सबस्ट्रिंग:" टेक्स्ट बॉक्स में, फ़ाइल का पथ टाइप करें (जैसे "C: \ path \ to to \ file.txt") और "खोज" पर क्लिक करें। सभी प्रक्रियाएं जो उस फ़ाइल के लिए एक खुला हैंडल है सूचीबद्ध होनी चाहिए।

उपरोक्त प्रक्रिया का उपयोग करके यह पता लगाएं कि कौन सी प्रक्रिया बंद है .git\index और फिर लॉकिंग निष्पादन योग्य है। यह अनलॉक करता है.git\index

उदाहरण के लिए, प्रक्रिया एक्सप्लोरर खोज दिखाता है कि .git\indexकिसके द्वारा लॉक किया गया है vmware-vmx.exe। VMWare प्लेयर वर्चुअल मशीन (जो एक साझा फ़ोल्डर के माध्यम से गिट रेपो तक पहुँचा) को निलंबित करने से समस्या हल हो गई।


हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं। - समीक्षा से
अल स्वेगार्ट

@ और, मैंने आपके सुझाव के अनुसार अपना उत्तर अपडेट कर दिया।
फैन

0

यदि आप इस रिपोर्ट को प्राप्त कर रहे हैं:

यह कुछ सॉफ्टवेयर द्वारा आपके रेपो की इंडेक्स फाइल को लॉक करने की वजह से होता है, जैसे कि बैकअप सॉफ्टवेयर, एंटी-वायरस, आईडीई या अन्य गिट क्लाइंट।

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

हालाँकि, git rebase --continueअगले आदेश के बारे में शिकायत करेंगे कि वह खाली है:

The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

इसे ठीक करने के लिए, बस चलाएं git resetऔर git rebase --continueफिर से प्रयास करें।


0

समस्या: जब मैं git में कुछ संशोधित फ़ाइलों की जाँच कर रहा था, तो यह त्रुटि मिली। मैं दो उपयोगकर्ता ABC और XYZ कर रहा था। फाइलें यूआईडी के पास हैं: एबीसी के जीआईडी ​​लेकिन इसमें गेट एक्सेस नहीं है और उसी के साथ फाइलों को चेकआउट करने की कोशिश की जा रही है।

मैंने जो उपाय आजमाया है: XYZ में जिट एक्सेस है, सूडो के साथ फाइलों की जांच करने की कोशिश की और यह काम कर गया .. !!


0

यहाँ मेरे लिए क्या काम किया गया है:

प्रसंग:

  1. एक सर्वर पर एक परियोजना का निर्माण

  2. git status एक रिटर्न HEAD detached at <commit-SHA>

  3. मैंने कभी भी स्थानीय स्तर पर जो ऑपरेशन किया, उसमें मेरी यह त्रुटि थी। अधिक विशेष रूप से:

    • गिट चेकआउट
    • git रीसेट HEAD --hard

उपाय

  1. बस फ़ाइल को हटा दिया <work-dir>/.git/index
  2. git statusसंकेत देगा कि प्रोजेट में सभी फाइलों को ट्रैक नहीं किया गया है (यहां कोई आश्चर्य नहीं)।
  3. git reset HEAD --hard
  4. वापस HEAD detached at <commit-SHA>जब एक करने के लिए git status, लेकिन तब आप करने में सक्षम होना चाहिए
  5. git checkout <some-branch>

और आप वापस ट्रैक पर हैं!

!! जरूरी !!

यह केवल इसलिए काम करता है क्योंकि मैं "मेरली" इमारत हूं। कोड पर कोई कीमती संशोधन नहीं किया गया है। यदि आप वास्तव में "देव-समय" में हैं, तो मैं पहले आपके काम को बचाने या किसी अन्य विधि के लिए जाने की सिफारिश करूंगा।

आशा है कि यह मदद करेगा :)।


0

मुझे विंडोज़ पर GitExtensions का उपयोग करके यह समस्या थी। रेपो में मौजूद फ़ोल्डर पर वर्तमान उपयोगकर्ता (मुझे) के लिए पूर्ण अनुमति देकर फिक्स्ड।

एक और समय, भले ही मुझे गिट एक्सटेंशन से त्रुटि मिल रही थी, मैं विजुअल स्टूडियो 2015 से एक ही फाइल करने में सक्षम था।

दूसरी बार मुझे "। सूचकांक" फ़ाइल को .git फ़ोल्डर से हटाना पड़ा


0

मेरा मामला थोड़ा दिलचस्प है:

मैं एक निश्चित कमिट की जांच करने के लिए git लॉग चलाता हूं, फिर मैंने इसे ठीक से नहीं छोड़ा, मैं इसे बाहर निकलने के लिए ctrl + c दबाता हूं।

फिर सूचकांक को लॉक किया गया लगता है। इसलिए मैं फिर से git लॉग रन करता हूं, फिर इसे छोड़ने के लिए Q दबाएं।

निर्धारित समस्या। :)


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