2011-07-03 9 views
241

अनदेखा नहीं कर सकते मैं Xcode 4 परियोजना संस्करण नियंत्रण के लिए Git उपयोग कर रहा हूँ। मैं स्पष्ट रूप से .gitignore करने के लिए ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstate चुके हैं, लेकिन Git यह इसे अनदेखा नहीं होंगे। कोई भी विचार यह क्यों इतना है?UserInterfaceState.xcuserstate

उत्तर

525

Git शायद पहले से ही फ़ाइल ट्रैक कर रहा है।

gitignore docs से:

एक फ़ाइल है कि वर्तमान में ट्रैक किया जाता है पर नज़र रखने के रोकने के लिए, Git rm का उपयोग --cached।

उपयोग इस, अपनी जानकारी के साथ [project] और [username] की जगह:

git rm --cached [project].xcodeproj/project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate 
git commit -m "Removed file that shouldn't be tracked" 

वैकल्पिक रूप से आप कि सभी फ़ाइलें संशोधित किया गया है या नष्ट कर दिया जोड़ देगा git commit करने के लिए -a विकल्प का उपयोग कर सकते हैं।

एक बार जब आप फ़ाइल को गिट से हटा देते हैं, तो यह आपके .gitignore का सम्मान करेगा। , http://help.github.com/remove-sensitive-data/

बहुत उपयोगी क्योंकि अन्यथा उपकरण 'लटका' करने के लिए उन विशाल फाइलों पर diff दिखाने की कोशिश करते हुए करते हैं:

+0

काम xCode4 प्रोजेक्ट फाइल के साथ ठीक से नहीं है कि :) – meddlesome

+1

मैं इस समस्या है लेकिन जब मैं xcuserstate फ़ाइल को हटाने का प्रयास यह कहता है 'किसी भी फाइल से मेल नहीं खाता'। क्या चल रहा है? –

+0

मुझे एक ही समस्या है @RobCaraway – MaxGabriel

4

यहाँ कैसे रिकर्सिवली अपना Git इतिहास से प्रश्न में फ़ाइलों को दूर करने के लिए की एक बहुत अच्छा विवरण है कि पहली जगह में चेक इन नहीं किया जाना चाहिए था ...

यहाँ तुम क्या (संक्षेप में) कर सकते हैं सबसे बड़ा सामान से छुटकारा पाने के है:

cd YourProject 
git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r YourProject.xcodeproj/project.xcworkspace' HEAD 
# see what you want to do with your remote here... 
# you can: git push origin master --force 
# or you can delete it and push a fresh new one from your cleaned-up local... 
rm -rf .git/refs/original 
git gc --prune=now 
git gc --aggressive --prune=now 

मेरे लिए बहुत अच्छी तरह से काम किया :)

41

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

  1. Git rm --cached YourProjectFolderName .xcodeproj/project.xcworkspace/xcuserdata/yourusername .xcuserdatad/UserInterfaceState.xcuserstate

  2. Git प्रतिबद्ध मी "निकाली फ़ाइल है कि ट्रैक नहीं किया जाना चाहिए "

  3. गिट क्लीन-एफ-डी

+0

github अब आपको एक डिफ़ॉल्ट .gitignore फ़ाइल देता है जिसमें यह फ़ाइल दूसरों के बीच शामिल है लेकिन आपको अभी भी अपने चरणों से गुजरना है। कष्टप्रद – cspam

+2

धन्यवाद पुरुषों, गिट क्लीन-एफ-डी अभी हटा दिया गया है। xcodeproj और मेरी परियोजना से अन्य फाइलें ... –

9

बस "गिट क्लीन-एफ-डी" मेरे लिए काम किया!

15

क्या कोई दोस्त मुझे यह अद्भुत साइट दिखाता है https://www.gitignore.io/। अपनी पसंद या अन्य विकल्पों में से आईडीई दर्ज करें और यह स्वचालित रूप से उपयोगी ध्यान न दी, xcuserstate है जिनमें से एक से मिलकर gitignore फाइल उत्पन्न करेगा। आप डाउनलोड करने से पहले gitignore फ़ाइल का पूर्वावलोकन कर सकते हैं।

enter image description here

+0

असली पैसा यहाँ – Ronaldoh1

14

मामले में फ़ाइल को दिखा भी यहाँ उल्लेख सब कुछ करने के बाद, यह सुनिश्चित करें कि Xcode सेटिंग में इस बॉक्स जांचा गया बनाने रहता है हर उपयोगकर्ता अगर आप में अलग मैक (घर और कार्यालय)

git rm --cache */UserInterfaceState.xcuserstate 
git commit -m "Never see you again, UserInterfaceState" 
11

सभी उत्तर महान है, लेकिन यहाँ एक के लिए निकाल देंगे है:

0

काम xcode 8.3.3 के लिए मैं सिर्फ टी जाँच उपरोक्त कोड Ried और देख सकते हैं कि, अब यह casewe में इस

पसंद करने के लिए आदेशों को बदलने के लिए पहले आप उस के बाद

touch .gitignore 

का उपयोग करके एक .gitignore फ़ाइल बना सकते हैं आप सभी userInterface फ़ाइल को नष्ट कर सकते हैं इस कमांड का उपयोग करके और इस कमांड का उपयोग करके यह आपकी .gitignore फ़ाइल का सम्मान करेगा।

git rm --cached [project].xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate 
git commit -m "Removed file that shouldn't be tracked" 
0

यहाँ कुछ डेमो & कम कटौती यदि आप GitHub का उपयोग करता है, बुनियादी विचारों एक ही हैं।

1. इस

enter image description here

2. की तरह खुला टर्मिनल टर्मिनल के लिए नीचे दिए गए आदेश फिर एक रिक्ति का पेस्ट और फिर बस की तरह इस

.xcuserstate फ़ाइल का रास्ता पेस्ट

git rm --cached enter image description here

3. सुनिश्चित करें कि आप सही Git है उपेक्षा और उसके बाद कोड :) प्रतिबद्ध बनाओ

enter image description here

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

  • कोई संबंधित समस्या नहीं^_^