मेरी फाइलों को .ignignore अनदेखा क्यों नहीं कर रहा है?


128

निचे इमेज देखे। मेरी .itignore फ़ाइल को src / dist में सभी फ़ाइलों को अनदेखा करना चाहिए, लेकिन ऐसा नहीं है।

यहां छवि विवरण दर्ज करें

जवाबों:


219

.gitignoreकेवल उन फ़ाइलों को अनदेखा करता है जो अभी रिपॉजिटरी का हिस्सा नहीं हैं। यदि आप पहले से ही git addकुछ फाइलें एड करते हैं, तो उनके परिवर्तन अभी भी ट्रैक किए जाएंगे। उन फ़ाइलों को आपकी रिपॉजिटरी (लेकिन आपके फ़ाइल सिस्टम से नहीं) से निकालने के लिए उन git rm --cachedपर उपयोग करें।


9
git rm - एक फ़ाइल के लिए gitignore अपडेट करने के लिए मेरे लिए ठीक file_name.ext wroks ठीक है। धन्यवाद।
sybozz

3
मैंने ऐसा किया था, लेकिन GitHub अभी भी उन्हें ट्रैक और जोड़ना चाहता है।
नेटसाइड

92

.Itignore फ़ाइल यह सुनिश्चित करती है कि Git द्वारा ट्रैक नहीं की गई फाइलें अनट्रैक हैं।

सिर्फ .gitignore फ़ाइल में फ़ोल्डर / फ़ाइलें जोड़ने से उन्हें अनट्रैक नहीं किया जाएगा - वे Git द्वारा ट्रैक किए जाएंगे।

फ़ाइलों को अनट्रैक करने के लिए, .ignignore फ़ाइल में सूचीबद्ध ट्रैक किए गए फ़ाइलों को रिपॉजिटरी से निकालना आवश्यक है। फिर उन्हें फिर से जोड़ें और अपने बदलाव करें।

ऐसा करने का सबसे आसान, सबसे आसान तरीका है कि रिपॉजिटरी में सभी फाइलों को हटा दें और कैश करें, फिर उन सभी को वापस जोड़ें। .Gitignore फ़ाइल में सूचीबद्ध सभी फ़ोल्डर / फ़ाइलें ट्रैक नहीं की जाएंगी। रिपॉजिटरी में शीर्ष फ़ोल्डर से निम्न कमांड चलाते हैं:

git rm -r --cached . git add .

फिर अपने बदलाव करें:

git commit -m "Untrack files in .gitignore"

कृपया ध्यान दें कि अवांछित फ़ाइलों के साथ कोई भी पिछला प्रतिबद्ध कमिटमेंट इतिहास में रहेगा। जब GitHub को धकेलना एक प्रतिबद्ध इतिहास के बारे में पता होना चाहिए जिसमें फ़ाइलें .envया client_secret.jsonफाइलें हो सकती हैं ।

सबसे अच्छा अभ्यास एक .itignore फ़ाइल बनाना है और इसे उन फ़ोल्डरों / फ़ाइलों के साथ आबाद करना है जिन्हें आप प्रोजेक्ट शुरू करते समय ट्रैक नहीं करना चाहते हैं। हालांकि, अक्सर यह महसूस करने के लिए आवश्यक है कि .ignignore फ़ाइल को यह महसूस करने के बाद कि अवांछित फ़ाइलों को ट्रैक और संग्रहीत किया जा रहा है।


जवाब के लिए धन्यवाद। इससे वाकई मदद मिली। रेपो को आगे बढ़ाने के लिए या तो धक्का मत भूलना
क्रिस रीड

git rm -r --cached .रोलिंग बैक का उपयोग करने के बाद, सभी परिवर्तन उन सभी फ़ाइलों को फिर से जोड़ने का काम करते हैं, जिन्हें .ignignore के साथ बाहर नहीं किया जाना चाहिए ।
एडम हर्विट्ज

8

gitignore केवल अनटैक की गई फ़ाइलों को अनदेखा करता है। आपकी फ़ाइलों को संशोधित के रूप में चिह्नित किया गया है - जिसका अर्थ है कि वे प्रतिबद्ध थे और अतीत और उनके अब गिट द्वारा ट्रैक किए गए हैं।

उन्हें अनदेखा करने के लिए, आपको पहले उन्हें, git rmउन्हें, कमिट करने और फिर उन्हें अनदेखा करने की आवश्यकता है।


6

आप git rm -r --cached/node_modules का उपयोग कर सकते हैं। मान लीजिए अगर आप नोड को अनदेखा करना चाहते हैं


4

इसे देखें: .ignignore काम नहीं कर रहा है और विशेष रूप से ADTC की टिप्पणी:

सुनिश्चित करें कि आपकी .gitignore फ़ाइल ANSI या UTF-8 एन्कोडिंग का उपयोग करती है। यदि यह यूनिकोड BOM जैसी किसी और चीज़ का उपयोग करता है, तो संभव है कि Git फ़ाइल को न पढ़े। - ADTC 14 दिसंबर 17 12:39 पर


0

सबसे पहले अपने git रेपो से index.lock फाइल को डिलीट करें

rm -f .git/index.lock

और फिर .gitignore जोड़ें

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