2010-02-23 5 views
21

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

यह फ़ाइल की सामग्री है।

# Ignored files 
*.suo 
*.user 
bin 
obj 
*.pdb 
*.cache 
*_svn 
*.svn 
*.suo 
*.user 
*.build-res 
TestResults 
_ReSharper* 

मैं क्या गलत कर रहा हूं? फाइल कहां स्थित है?

उत्तर

12

आपको यह सुनिश्चित करना होगा कि आप जो फ़ाइल अभी भी देख रहे हैं वह वर्तमान में प्रतिबद्ध या मंचित नहीं है।

यदि आप उन्हें हटाते हैं (git rm या git rm --cached), और फिर उन्हें निजी फ़ाइल के रूप में जोड़ें, तो उन्हें अनदेखा कर दिया जाएगा।

+0

यह कारण होना चाहिए, धन्यवाद। – Darkmage

1

आप इसे सही ढूंढ रहे हैं। .gitignore एक ही फ़ोल्डर में होना चाहिए, जहां स्थित है .git फ़ोल्डर स्थित है। अंदर फ़ाइल भी सही दिखती है। हालांकि, मेरे पास शीर्ष पर कोई टिप्पणी पंक्ति नहीं है ..

6

आपकी फ़ाइल अच्छी लगती है। बस सुनिश्चित करें कि आपके पास प्रत्येक पंक्ति की शुरुआत में किसी भी तरह की सफेद जगह नहीं है, मुझे यह पता लगाने में 4 घंटे लग गए कि मेरा .gitignore सही तरीके से क्यों काम नहीं कर रहा था; कारण निश्चित रूप से एक कट'नपेस्ट मुद्दा था जहां फ़ाइल की शुरुआत में मेरे पास रिक्त स्थान की लंबवत रेखा थी।

यह सुनिश्चित करने से पहले आपको git commit -a से सावधान रहना चाहिए कि आपकी .gitignore फ़ाइल वास्तव में वह सब कुछ साफ़ कर लेती है जिसे आप नहीं चाहते हैं। git add *.cpp *.h के साथ या तो प्रत्येक फ़ाइल को चिह्नित करें (या वाइल्डकार्ड का उपयोग करें) - जैसे मैं आपकी पसंद करता हूं - अपनी प्रगति के रूप में अपना .gitignore विकसित करें, और हमेशा आने से पहले git status से जांचें।

आप दोबारा जांच करने के लिए कि आपके .gitignore वास्तव में काम करता है चाहते हैं, try

git ls-files --others -i --exclude-standard 

इसमें सभी फ़ाइलें कि आप वर्तमान में अनदेखी कर रहे हैं सूचीबद्ध करना चाहिए।

फ़ाइलें आप पहले से ही जोड़ दिया है बाहर साफ करने के लिए (शायद git add . का उपयोग कर, एक गलती है कि हम सब शुरुआत में कर =]) आप कर सकते हैं @VonC की तरह कहा: या तो चलाने

git rm <filename> 

या

git rm --cached <filename> 

अनजाने में जोड़े गए सभी फ़ाइलों को साफ़ करने का एक अन्य विकल्प है कि आप अपने भंडार को पूरी तरह से साफ करें, और फिर सब कुछ फिर से जोड़ें। तुम बाहर, you can run

git --rm cached . 

मचान क्षेत्र में सब कुछ स्पष्ट लेकिन git add . नहीं चलाने के लिए याद जब तक आप यह सुनिश्चित करें कि Git स्थिति केवल फाइलों तुम सच में भंडार में सूचीबद्ध है बनाया है चाहते हैं।

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

git rm --cached *.suo *.log 

चलाने के लिए और Git कि कि हस्ताक्षर करना, चाहे मैचों में अपने भंडार में सभी फाइलों को खोजने का ख्याल रखता है पेड़ वे हैं।

0

जब मैं इसे देखता हूं, तो मुझे लगता है कि आप अपनी अनदेखी फ़ाइल को भूलना भूल गए हैं।

2

मैं इस काम करने के लिए प्राप्त करने के लिए कई तरीके की कोशिश की और यह अंत में बहुत आसान था:

आप पहली बार .gitignore प्रतिबद्ध चाहिए!

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

0

कोई भी आरएम कैश्ड समाधान मेरे लिए काम नहीं करता है। फ़ाइल को ASCII/ANSI के रूप में एन्कोड किया जाना आवश्यक है। मैंने लाइन एंडिंग को भी बदल दिया, लेकिन अकेले ही इसे ठीक नहीं किया। मुझे यूआरएल नहीं मिल रहा है जिसमें ये निर्देश थे (क्षमा करें, मूल पोस्टर!) लेकिन यह मेरे लिए काम किया:

  1. यदि आपके पास पहले से नहीं है तो नोटपैड ++ इंस्टॉल करें। टेक्स्टपैड भी काम करना चाहिए, लेकिन मैं नोटपैड ++ का उपयोग करता हूं।
  2. नोटपैड ++ के साथ अपना .gitignore खोलें।
  3. देखें पर क्लिक करें | प्रतीक दिखाएं | सभी अक्षरों को दिखाएं। आप शायद प्रत्येक पंक्ति के अंत में सीआर एलएफ देखेंगे।
  4. एक खोज करें और बदलें (ctrl + h), यह सुनिश्चित कर लें कि विस्तारित चेक किया गया है (हाथ कोने को कम करें)। \ R \ n के लिए खोजें और \ n के साथ प्रतिस्थापित करें। आप केवल सीएफ एलएफ परिवर्तन को एलएफ में देखेंगे।
  5. अब एन्कोडिंग पर क्लिक करें। एएनएसआई में एनकोड।
  6. फ़ाइल को सहेजें और बाहर निकलें।

विंडोज़ या गिट कमांड प्रॉम्प्ट में कमांड प्रॉम्प्ट से, जो भी आपको पसंद है, जब आप गिट स्थिति करते हैं तो इसे .gitignore में फ़ाइलों को नहीं दिखाना चाहिए।