Git उन फ़ाइलों को अनदेखा कर रहा है जो gitignore में नहीं हैं


117

मेरे पास एक git रिपॉजिटरी है जो छवि फ़ाइलों के साथ-साथ कुछ अन्य फ़ाइलों .gitignoreको भी अनदेखा कर रही है, लेकिन मेरी फ़ाइल में केवल एक config.phpफ़ाइल की अनदेखी है । वहाँ कुछ वैश्विक उपेक्षा फ़ाइल है कि मैं खोजने के लिए प्रतीत नहीं कर सकते हैं? मुझे उन्हें अभी जोड़ने के लिए फाइलें निर्दिष्ट करनी हैं, और यह मुझे यह चेतावनी दे रहा है:

निम्न पथों को आपकी .gitignore फ़ाइलों में से एक द्वारा अनदेखा किया जाता है।

मेरी ~/.gitconfigफ़ाइल की सामग्री केवल मेरा ई-मेल पता है।


जवाबों:


198

git check-ignore

अपने gitignore फ़ाइल को डीबग करने के लिए git check-ignoreकमांड का उपयोग करें (फ़ाइलों को बाहर करें)।

उदाहरण के लिए:

$ git check-ignore -v config.php
.gitignore:2:src    config.php

प्रत्येक दिए गए pathname (लाइन सहित) के लिए मिलान पैटर्न (यदि कोई हो) के बारे में उपरोक्त आउटपुट विवरण।

तो हो सकता है कि आपकी फ़ाइल एक्सटेंशन को अनदेखा न किया जाए, लेकिन पूरी निर्देशिका को।

लौटाया गया प्रारूप है:

<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>

या .gitignoreउपयोगकर्ता होम और रिपॉजिटरी फ़ोल्डर में अपना प्रिंट करने के लिए निम्न कमांड का उपयोग करें :

cat ~/.gitignore "$(git rev-parse --show-toplevel)"/.gitignore "$(git rev-parse --show-toplevel)"/.git/info/exclude

वैकल्पिक रूप से उपयोग करें git add -fजो अन्यथा अनदेखा फ़ाइलों को जोड़ने की अनुमति देता है।

देखें: man gitignore, man git-check-ignoreअधिक जानकारी के लिए।

वाक्य - विन्यास

git चेक-इग्नोर करें [विकल्प] pathname…

git चेक-इग्नोर करें [विकल्प] --stdin


5
यह स्वीकृत उत्तर की तुलना में बहुत बेहतर है। उस एक के लिए कोई अपराध नहीं, लेकिन इससे मेरा दिन बच गया। शुक्रिया केनोरब।
21

1
अधिक उत्थान का वर्णन करता है। पता चला कि कुछ / विक्रेता / फ़ोल्डर में कुछ अजीब gitignore नवीनतम git संस्करण के साथ समस्या का कारण बना।
मैन्‍युअल अरविद श्मिट

2
इसने आज मुझे बचाया ... ऐसा लगता है कि दृश्य स्टूडियो ने उपयोगकर्ताओं के दस्तावेज़ फ़ोल्डर में gitignore_global.txt नामक एक फ़ाइल बनाई और यह उन फ़ाइलों को अनदेखा कर रहा था जो मैं (संयुक्त राष्ट्र) को अनदेखा नहीं कर रहा था
शमूएल

1
मेरी समस्या का पूरी तरह से समाधान किया। कुछ पैटर्न आँख से पकड़ना आसान नहीं है !!
Willa

54

यह जानना अच्छा हो सकता है कि आपके गिट कॉन्फ़िगरेशन में एक core.excludesfile हो सकता है जो कि अतिरिक्त पैटर्न वाली फ़ाइल का एक पथ है जिसे अनदेखा किया जाता है। आप पता लगा सकते हैं कि क्या आपके पास इस तरह का कॉन्फ़िगरेशन चल रहा है (समस्याग्रस्त गिट रेपो में):

git config core.excludesfile

यदि यह एक फ़ाइल पथ प्रिंट करता है, तो आगे की जानकारी के लिए उस फ़ाइल की सामग्री को देखें।

मेरे मामले में मैंने बॉक्सन के पुराने संस्करण के माध्यम से गिट स्थापित किया जिसने पैटर्न 'आइकन' को नजरअंदाज कर दिया था? मेरे मामले में मुझे इस चेतावनी का उल्लेख किया गया था, एक फ़ोल्डर आइकनों के लिए इस प्रश्न का उल्लेख किया गया (मैं एक मामले में असंवेदनशील फाइल पर हूं, यही कारण है कि आइकन - आइकनों से मेल खाता है)।


2
यह वास्तव में मेरी समस्या थी। निश्चित नहीं है कि यह फ़ाइल कैसे या कब संपादित की जाती है, लेकिन इसमें वह फ़ाइल थी जिसे मैं इसमें सूचीबद्ध करना चाहता था
toxaq

2
धन्यवाद, आपने मुझे शुद्ध पीड़ा के घंटे बचाए। मेरे मामले में, यह स्रोत ट्री (एक उपकरण विज़िट गैट रेपो) की स्थापना थी, जो दस्तावेज़ फ़ोल्डर के तहत अनजाने में बनाया गया था एक gitignore_global.txt जिसमें बहुत सारे बहिष्करण शामिल थे।
मैकेनिकल ऑब्जेक्ट

मैं वही लानत मलामत की Icon?जा रही थी।
जस्टिन स्काइल्स

यह मेरे लिए मामला था। वैश्विक अनदेखी फ़ाइल के अंदर काफी कुछ नियम थे। टिप के लिए धन्यवाद +1
पागलपन

मेरे पास * .json मेरी वैश्विक अनदेखी - एक दुःस्वप्न के बारे में बात - धन्यवाद!
जेसन परफ़ेक्टो

31

ये देखें:

  1. क्या आपने अन्य .gitignore फ़ाइलों की तलाश की है, क्योंकि उनमें से कई हो सकते हैं।

  2. इसके अलावा, वहाँ कुछ भी है या नहीं यह देखने के लिए REPO / .गित / कॉन्फिगरेशन देखें।

  3. रेपो को बाहर करें स्थानीय प्रति-रेपो नियमों को अपने रेपो में .it / जानकारी / बहिष्कृत फ़ाइल में जोड़ा जा सकता है। ये नियम रेपो के साथ प्रतिबद्ध नहीं हैं इसलिए इन्हें दूसरों के साथ साझा नहीं किया जाता है। इस पद्धति का उपयोग स्थानीय रूप से जेनरेट की गई फ़ाइलों के लिए किया जा सकता है, जो आप अन्य उपयोगकर्ताओं को उत्पन्न करने की अपेक्षा नहीं करते हैं, जैसे आपके संपादक द्वारा बनाई गई फाइलें।


रिपॉजिटरी में कोई अन्य .gitignore फाइलें नहीं हैं, न ही .git / config फाइल में कुछ भी है जो कुछ भी अनदेखा करता है। कॉन्फ़िगर।
इयान हंटर

4
यह स्पष्ट नहीं है कि इस उत्तर को उत्तर के रूप में क्यों चिह्नित किया गया है। वास्तव में इस मुद्दे को कैसे हल किया गया था?
अगला डेवलपर

बाहर करना मेरी समस्या थी। मुझे पता था कि उपेक्षा करने का एक और तरीका है, जिसका उपयोग मैंने अतीत में किया था, लेकिन यह भूल गया कि यह कहाँ था!
चंकी

22

मेरे पास एक ही समस्या थी - इस त्रुटि के साथ गिट द्वारा एक निर्देशिका को अनदेखा किया जा रहा था:

➭ git add app/views/admin/tags/
The following paths are ignored by one of your .gitignore files:
app/views/admin/tags
Use -f if you really want to add them.
fatal: no files added

मुझे अंततः पता चला कि मेरी समस्या मेरी एक पंक्ति थी ~/.gitignore_global:

TAGS

जो मार्ग से मेल खा रहा था app/views/admin/tags। मैंने इसे वैश्विक gitignore फ़ाइल में एक प्रमुख स्लैश जोड़कर तय किया

/TAGS

और git ने मेरी निर्देशिका को फिर से ट्रैक करना शुरू कर दिया।


3
+1 मुझे आंशिक मैचों के लिए देखने के लिए ... gitignore_global.txt निहित "[rr] elease * /" जो मेरी "releasenotes" निर्देशिका को अनदेखा करने का कारण बन रहा था।
ट्रेव

इसे और भी कठिन बनाने के लिए, गिट केवल नई जोड़ी गई फाइलों को नजरअंदाज करेगा, न कि पहले से ही रेपो में। इसलिए जब मैंने ".ooignore" में "foo /" जोड़ा, तो उसने foo उपनिर्देशिकाओं में केवल हाल ही में जोड़ी गई फ़ाइलों को अनदेखा कर दिया और सभी फ़ाइलों को नहीं। मुझे यह जानने में एक घंटा लगा कि कुछ फाइलों को नजरअंदाज क्यों किया जा रहा है और दूसरों को नहीं।
चीकू

मेरी भी यही समस्या है। SourceTree सेट करता है ~ / .gitignore_global टूल मेनू में-> विकल्प आइटम-> Git टैब। जब मैंने फील्ड की सफाई की तो ग्लोबल इग्नोर लिस्ट "git add ..." कमांड ने काम किया।
केट

मेरी भी यही समस्या थी। मेरे पास helpनिर्देशिका थी जिसे अनदेखा किया जा रहा था। सौभाग्य से मुझे आपका उत्तर बहुत जल्दी मिल गया।
अब्दुल सादिक यालसिन

9

मेरे लिए गलती से मेरे ~ / .ignignore_global फ़ाइल में एक वाइल्डकार्ड था। शायद वहाँ की जाँच करें?


1
यह वास्तव में मेरे लिए मुद्दा था। मेरे पास * .png वहाँ था, पता नहीं कैसे वहाँ पहुँच गया।
शाहर

3

कोशिश करने के लिए एक और चीज: मेरे पास .gitअपनी परियोजना निर्देशिका ए (लेकिन एक सबमॉडल के रूप में नहीं) के तहत अपने स्वयं के भंडार के साथ एक निर्देशिका बी थी । मैंने बी में कुछ बदलाव किए, और इसे एक बोनाफाइड सबमॉड्यूल में बनाना चाहता था। मेरा मानना ​​है कि git A स्वचालित रूप से B को अनदेखा कर रहा था क्योंकि इसमें अपनी स्वयं की रिपॉजिटरी थी (देखें Nmit git रिपॉजिटरी बिना मैमोड्यूल्स के? )। मैंने बी फ़ोल्डर का नाम बदला, और इसे एक सबमॉड्यूल के रूप में फिर से क्लोन करने की कोशिश की, और जो मुझे ".ignignore द्वारा नजरअंदाज" भ्रामक संदेश ला रहा था। इसका समाधान .gitबी को हटाना था ।


2

मुझे आपके जैसी ही समस्या हो रही थी। एकमात्र उत्तर जो आपको जांचने के लिए कुछ स्थानों पर सूचीबद्ध किया गया था, लेकिन उनमें से किसी ने भी मेरे लिए समस्या हल नहीं की, और आपकी टिप्पणी से मुझे आपके लिए भी नहीं लगता। मेरे पास कोई अन्य .gitignore फाइलें नहीं थीं जो निर्देशिका ट्री में कम छिपी थीं; कुछ भी नहीं; कुछ भी नहीं है। init / ingore / बाहर करना

यदि आपको अभी भी समस्या है, तो इस उत्तर को जांचें । इसने मेरे लिए इस मुद्दे को हल कर दिया

असल में, ~ / .ignignore फ़ाइल के लिए जाँच करें। खान को ~ / .gitignore_global कहा जाता था। मुझे नहीं पता कि यह कब बनाया गया था ( मैंने इसे निश्चित रूप से नहीं बनाया था), लेकिन मैंने एक टन अलग गिट सेटअप की कोशिश की जब मैंने पहली बार स्थापित किया था, इसलिए उनमें से एक को इसे वहां रखना चाहिए था।

आशा है कि उसका जवाब आपको भी मदद करे!


1

इस त्रुटि संदेश को git से प्राप्त करने का एक अन्य कारण यह है कि git submodule addकमांड को निष्पादित करते समय एक पिछला git कमांड क्रैश हो गया है और लॉक फाइल को छोड़ दिया है (ऐसा हो सकता है, उदाहरण के लिए, जब आप कस्टम स्क्रिप्ट का उपयोग करते हैं जिसमें git कमांड शामिल होते हैं और आपने नोट नहीं किया है दुर्घटना)।

यदि आप git commitइसके बजाय कमांड निष्पादित करते हैं , जबकि कोई भी स्थिति नहीं बदली है ( git submodule addयह चिल्लाता रहेगा कि आपकी .gitignoreफ़ाइलों को दोष देना है), तो आपको इसके बजाय एक और त्रुटि रिपोर्ट दिखाई देगी :

$ git commit -a
fatal: Unable to create '..../.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

और वास्तव में ताला हटाना:

rm .git/index.lock

समस्या हल करता है। (यह संस्करण 2.1.0.9736 के गेटिट के लिए होता है। इसे भविष्य के गिट रिलीज़ में ठीक किया जा सकता है।)


धन्यवाद इस मुद्दे मैं होने के लिए निकला। जीवन रक्षक!
जेड्वग

1

जाँचें कि आपके पास फ़ोल्डर की अनुमति है। मैं अभी इसमें चला आया हूं और यह इसलिए था क्योंकि फ़ोल्डर www-data उपयोगकर्ता के स्वामित्व में था न कि उपयोगकर्ता जिसे मैं टर्मिनल में लॉग इन किया गया था।


1

मेरे मामले में यह मेरे रास्ते में आगे कीचड़ था जिससे समस्या पैदा हुई ...

काम नहीं

/srv/bootstrap/

काम

srv/bootstrap/

1

एक और बात: यदि निर्देशिका आपको लिखने या निष्पादित करने के लिए रूट एक्सेस की आवश्यकता होती है, तो सुनिश्चित करें कि आप रूट उपयोगकर्ता पर हैं। मुझे वास्तव में एक अजीब त्रुटि मिली जहां मैं एक सबमॉड्यूल जोड़ने की कोशिश कर रहा था और जीआईटी शिकायत करता रहा कि जिस पथ में मैं क्लोन कर रहा था वह एक गिट इग्नोर फाइल द्वारा अनदेखा किया जा रहा था। फिर मैंने रूट यूजर में बदलाव किया, सबमॉड्यूल ऐड को फिर से चलाया, और कोई समस्या नहीं थी।


0

कृपया जाँचें ~/.gitignoreऔर ~/.gitignore_globalजो कुछ Git क्लाइंट (उदाहरण के लिए Mac OS X पर Atlassian SourceTree) द्वारा बनाया जा सकता है।


0

सुनिश्चित करें कि .gitignoreफ़ाइल खुद को अनदेखा नहीं कर रही है। एक सामान्य गलती वर्तमान फ़ोल्डर में हर फ़ाइल को अनदेखा *करने के लिए .gitignoreफ़ाइल में एक नियम जोड़ रही है । इसका समाधान इसके अपवाद को जोड़ना है .gitignore:

*
!.gitignore

इस तरह से डायरेक्टरी की सभी फाइलों को अनदेखा कर दिया जाएगा .gitignore

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