2014-05-17 9 views
35

अनदेखी नहीं कोई फर्क नहीं पड़ता कि मैं क्या .gitignore में डाल रहा नहीं प्राप्त Git नीचे UserInterfaceState.xcuserstate फ़ाइल की अनदेखी करने के कर सकते हैं:gitignore फ़ाइल

$ git status 
On branch master 
Your branch is up-to-date with 'origin/master'. 

Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

    modified: .gitignore 
    modified: CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate 

मैं उपयोग कर रहा हूँ/संपादन this post पर सूचीबद्ध .gitignore फ़ाइल। मैंने सटीक पथनाम सहित पैटर्न से मेल खाने के लिए सब कुछ करने की कोशिश की: CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate कोई फायदा नहीं हुआ।

यह विशेष समस्या वर्कफ़्लो से उत्पन्न होती है जहां प्रारंभिक गिट रेपो बनाने के लिए एक्सकोड का उपयोग किया जाता है और here से फ़ाइल को बाद में जोड़ा जाता है। गिट में पिछली ट्रैक की गई फ़ाइलों को अनदेखा करने का एक और सामान्य उत्तर this question से पाया जा सकता है (मुझे लगता है कि मुझे इस पोस्ट को मेरी खोज में कभी नहीं मिला क्योंकि उसके शीर्षक में "गिटिनोरोर" नहीं था)।

+0

संभावित डुप्लिकेट [गिट में फ़ाइल में परिवर्तनों को ट्रैक करना और अनदेखा करना] [http://stackoverflow.com/questions/936249/stop-tracking-and-ignore-changes-to-a-file-in-git) – Unicornist

+0

@Unicornist एक डुप्लिकेट नहीं है - मैं चाहता हूं कि एक विशिष्ट फ़ाइल हटा दी जाए और अनदेखा * हर जगह * जबकि दूसरा प्रश्न कुछ फाइलों को विश्व स्तर पर ट्रैक नहीं करना चाहता। – wcochran

उत्तर

60

आप केवल विचलित फ़ाइलों को अनदेखा कर सकते हैं लेकिन वह फ़ाइल पहले ही गिट के लिए जानी जाती है।

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

यदि आप उस फ़ाइल को ट्रैक करने के लिए गिट नहीं चाहते हैं तो git rm और आपका अनदेखा नियम काम करना शुरू कर देगा।

सावधानी: git rm फ़ाइल को हटा देगा। रेपो से निकालने के लिए git rm --cached का उपयोग करें, लेकिन डिस्क से नहीं।

+16

सावधानी, 'git rm' फ़ाइल को हटा देगा। रेपो से हटाने के लिए 'git rm --cached' का प्रयोग करें, लेकिन डिस्क से नहीं। – Darkhogg

+0

धन्यवाद @ मिचस और डार्कहोग - अब इसे रेपो से प्राप्त करके हटाया जा रहा है। – wcochran

+2

यह उत्तर उस चीज़ से मेल खाता है जो मैं मानता था: लेकिन आज, मेरे पास एक फ़ाइल है जो .gitignore में है, इसे नियंत्रित नहीं किया जाता है, और यह अभी भी "गिट स्टेटस" में एक अनचाहे फ़ाइल के रूप में दिखाई देता है (इसका फ़ाइल नाम 'बिल्ड' है)। "गिट आरएम बिल्ड" की कोई मात्रा या .gitignore को छूने में मदद करता है। कोई विचार? – Stabledog

10

मुझे एक ही समस्या थी।

सबसे पहले किसी भी बकाया कोड में परिवर्तन इस आदेश के लिए प्रतिबद्ध है, और फिर, चलाएँ:

git rm -r --cached . 

यह सूचकांक (मंचन क्षेत्र) से किसी भी बदली हुई फाइलों को हटा, तो बस चलाने:

git add . 

कमिट यह:

git commit -m ".gitignore working now" 

गिट आरएम - कैश किए गए फ़ाइल नाम को पूर्ववत करने के लिए, गिट जोड़ें फ़ाइल नाम का उपयोग करें।

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