2008-12-10 13 views
17

मैं Git करने के लिए मौजूदा निर्देशिका में सभी फ़ाइलों को जोड़ना चाहते हैं की वजह से git करने के लिए सभी फाइलों को जोड़ सकते हैं:नहीं अनुमतियों

git add . 
error: open(".mysql_history"): Permission denied 
fatal: unable to index file .mysql_history 

यही ठीक है। वह फ़ाइल इस निर्देशिका में होती है और रूट के स्वामित्व में होती है। मैं सभी अन्य फ़ाइलों को जोड़ना चाहता हूं। क्या हाथ से प्रत्येक फ़ाइल को मैन्युअल रूप से जोड़ने के बिना ऐसा करने का कोई तरीका है?

मुझे पता है कि मैं फ़ाइल को बाहर करने या .gitignore को जोड़ने के लिए जोड़ सकता हूं, लेकिन मैं इसे अनुमतियों के आधार पर चीजों को अनदेखा करना चाहता हूं (इस तरह की अन्य फाइलें निर्देशिका में समाप्त हो जाएंगी, और जोड़ना उन्हें .gitignore हर समय एक दर्द है)।

उत्तर

28

उपयोग git add --ignore-errors .

यह अभी भी नहीं एक घातक एक अपठनीय फ़ाइल (फ़ाइलें) के लिए एक त्रुटि दे देंगे, लेकिन। अन्य फाइलें जोड़ दी जाएंगी।

+1

यह काम करता है का उपयोग कर समाप्त हो गया, लेकिन ऐसा लगता है केवल Git 2.6 पर और ऊपर :) – singpolyma

+0

इस के लिए धन्यवाद। @matli – ashishsony

+5

यदि आप वीएस का उपयोग कर रहे हैं तो ऐसा हो सकता है। मेरे मामले में मुझे सभी विजुअल स्टूडियो उदाहरण बंद करना पड़ा। आईआईएस एक्सप्रेस को बंद करना और विजुअल स्टूडियो को पुनरारंभ करना भी इस मुद्दे को हल करेगा। – Dhanuka777

4

यदि आप उस फ़ाइल को अपनी .gitignore फ़ाइल में जोड़ते हैं तो क्या इससे मदद मिलेगी? तो सभी अन्य फाइलों का संस्करण होगा और उस फ़ाइल को अनदेखा कर दिया जाएगा (जब तक आपको इसकी आवश्यकता न हो)।

3

बस फ़ाइल को बाहर करें। आप .mysql_history को .gitignore फ़ाइल में जोड़ सकते हैं, या इसे .git/info/exclude पर जोड़ सकते हैं।

.gitignore में कोई प्रविष्टि जोड़ना रेपो के साथ सेटिंग को प्रसारित करेगा (.gitignore रेपो के साथ संग्रहीत है); इसे .git/info/exclude में जोड़कर इसे "व्यक्तिगत" बनाता है क्योंकि यह फ़ाइल रेपो के साथ प्रचारित नहीं है। किसी भी तरह से, .mysql_history को git-add और मित्रों द्वारा अनदेखा कर दिया जाएगा।

आप इस man page पर गिट के साथ फ़ाइलों को अनदेखा करने के बारे में अधिक पढ़ सकते हैं।

4
sudo chown $(whoami): .git/objects/ -R; git add --ignore-errors . 

यह मेरे लिए तय किया गया। पहली छमाही तय स्वामित्व, (रूट के रूप में चेक-इन, शरारती) और दूसरा आधा त्रुटियों को गैर-घातक बनाता है। दूसरी छमाही ने मुझे ट्रैक करने में मदद की कि कौन सी निर्देशिका रूट के स्वामित्व में थी।

1

मैं @matli के समाधान का उपयोग कर रहा था लेकिन अभी भी कभी-कभी परेशानी होती है। मैं

git add --ignore-errors --force .

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