2011-06-19 13 views
16

केवल एक फ़ाइल के लिए, मैं निम्नलिखित त्रुटि हो रही है:Git: इंडेक्स फ़ाइल में असमर्थ - अनुमति नहीं दी

error: unable to write sha1 filename /opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47: Permission denied 

error: wp/wp-admin/css/theme-install.dev.css: failed to insert into database 
fatal: unable to index file wp/wp-admin/css/theme-install.dev.css 

मैं सवाल में फ़ाइल पर मेरी अनुमतियों की जाँच की, .git प्रश्न में निर्देशिका वस्तुओं , और .git स्वयं। मैं इसे छोड़कर किसी अन्य फाइल को जोड़ सकता हूं। मैं stat/r/w/touch फ़ाइल कर सकता था, और स्पर्श करने से मदद नहीं मिली। अनुमतियां सभी सही हैं।

इस कुछ पागल बग है?

+1

आप '' .../वस्तुओं/3f' में touch' नई फ़ाइलें, या यदि नहीं, तो क्या इसकी विधा है सकते हैं? क्या '.../ऑब्जेक्ट्स/3 एफ/सीई 3 ...' पहले से मौजूद है, और यदि हां, तो इसका मोड क्या है? क्या विभाजन हो सकता है जहां '/ opt' जीवन भर जाए? –

+0

स्पर्श करना ठीक है, और फ़ाइल मौजूद नहीं है। – h4xnoodle

+0

भी इस मामले में मुझे क्या हुआ: नाम "imafile" > इस फ़ाइल को हटाने>> "imafile" नाम की एक निर्देशिका बनाने डाल = में फ़ाइलों क्योंकि – Flozza

उत्तर

9

Git स्रोत कोड (sha1_file.c, समारोह move_temp_to_file()) ऐसा लगता है Git की तरह /opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47 के लिए एक अस्थायी /opt/www/.git/objects/3f/tmp_obj_XXXXXX नाम की फ़ाइल का नाम बदलने के (जहां XXXXXX छह यादृच्छिक वर्ण है) विफल हो रहा है को देखते हुए। ऐसा तब हो सकता है जब आपको /opt/www/.git/objects/3f में फ़ाइलों को हटाने की अनुमति न हो।

कुछ बातें की कोशिश करने के लिए:

  • एकाधिक उपयोगकर्ताओं Git भंडार पहुंचने पर, आप (विवरण के लिए git help config देखें) कि नव निर्मित निर्देशिका सुनिश्चित करने के लिए और फ़ाइलों को सभी के लिए उचित अनुमतियां हैं git config core.sharedRepository 0664 की तरह कुछ चलाने के लिए आवश्यकता हो सकती है भंडार के उपयोगकर्ता।
  • rm -f /opt/www/.git/objects/3f/tmp_obj_* चलाने की कोशिश करें और देखते हैं कि अगर बनाता है समस्या का समाधान।

    mkdir -p /opt/www/.git/objects/3f 
    cd /opt/www/.git/objects/3f 
    rm -f tmp_obj_* ce3587c54a8be14c69b08c6b01f94949b11b47 
    echo "testing" >tmp_obj_abcdefg 
    mv tmp_obj_abcdef ce3587c54a8be14c69b08c6b01f94949b11b47 
    rm -f tmp_obj_abcdefg 
    

    ऊपर एक ही उपयोगकर्ता है कि त्रुटि का अनुभव किया आदेशों को चलाने के लिए सुनिश्चित करें:

  • आप निम्न कार्य करके Git के बाहर समस्या को पुन: कर सकते हैं अगर देखें।

  • रिकर्सिवली chown आईएनजी और chmod वस्तुओं निर्देशिका ing का प्रयास करें।
+0

एक अज्ञात कारण के लिए "अनुक्रमणिका खोजने में असमर्थ" प्रतिबद्ध नहीं कर सकते हैं एक फ़ाइल होने , मैं वास्तव में कुछ वस्तुओं रूट के मालिक थे। – Gra

5

आपको /opt/www/.git/objects/3f में लिखने की अनुमति नहीं है।

तेज समाधान रूट विशेषाधिकारों के साथ अपने आदेश पर अमल करने sudo आदेश का उपयोग करने के लिए है।

sudo <Your git command>

मेरे लिए यह हल।

+1

मेरे लिए काम किया ... मुझे लगता है कि मेरे मामले में यह पिछले कारण के माध्यम से आधे रास्ते को समाप्त कर रहा था –

31

यदि आप दृश्य स्टूडियो या एमडीएफ फ़ाइल उत्पन्न करने वाले कुछ समान उपयोग कर रहे हैं, तो बस VS & को फिर से अपने गिट कमांड को पुनः प्रयास करें। इस बार यह काम करना चाहिए।

+2

आप आदमी, मेरे दोस्त – kiiiiNNNNNNNNNyyyy

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