UserInterfaceState.xcuserstate को अनदेखा नहीं कर सकते


301

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

जवाबों:


669

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

से gitignore डॉक्स :

वर्तमान में ट्रैक की गई फ़ाइल को ट्रैक करने से रोकने के लिए 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"

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

एक बार जब आप फ़ाइल को git से हटा देंगे, तो यह आपकी इज्जत करेगा .gitignore


3
मुझे यह समस्या है लेकिन जब मैं xcuserstate फ़ाइल को निकालने का प्रयास करता हूं तो यह कहता है कि 'किसी भी फाइल से मेल नहीं खाता'। क्या चल रहा है?
रॉब कैरावे

मेरे पास @RobCaraway
MaxGabriel

24
इससे मुझे मदद मिली: 1) एक्सकोड छोड़ दिया; 2) प्रोजेक्ट डायरेक्टरी में जाएं और टर्मिनल ऐप से "ls -la" करें ताकि यह सुनिश्चित हो सके कि आप .गित और .ignignore फाइलें देखें; 3) अपनी परियोजना के नाम से ऊपर के उदाहरण में "प्रोजेक्टफॉल्डर" बदलें ; 4) दो git कमांड जो मैट दिखाता है; 5) XCode को पुनः लोड करें और एक कमिट करें और सत्यापित करें कि xcuserstate फ़ाइल अब सूचीबद्ध नहीं है।
ब्रेनवेयर

1
किसी भी विचार कैसे svn में बराबर करने के लिए? मुझे एक ही मुद्दा मिल रहा है, जिसमें svn फ़ाइल को अनदेखा नहीं कर रहा है
bpn

धन्यवाद @Brainware !! यह अंत में आपके सुझाव के लिए धन्यवाद काम किया। मुझे लगता है कि Xcode को पहले से बंद करना बहुत महत्वपूर्ण है।
जय वर्सलिस

52

ऐसी स्थिति में जिसे अनदेखा किया गया फ़ाइल अनट्रेक्ड सूची में दिखाई दे रहा है, तो आप उपयोग कर सकते हैं git clean -f -d चीजों को साफ़ लिए ।

1।

git rm --cached {YourProjectFolderName}.xcodeproj/project.xcworkspace/xcuserdata/{yourUserName}.xcuserdatad/UserInterfaceState.xcuserstate

2।

git commit -m "Removed file that shouldn't be tracked"

3. पहले प्रयास करें git clean -f -d --dry-run , अन्यथा आप अनपेक्षित परिवर्तन खो सकते हैं।

फिर: git clean -f -d


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

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

1
यह जोर से चलाने की सलाह दी जाती है - साफ-सुथरा चलने से पहले ध्वज को चलाने के लिए, अर्थात git clean -f -d --dry-run क्या होता है देखने के लिए
शून्य 06

क्या करता git clean -f -dहै?
एलनिनली

git clean -f -dयदि आपने फ़ाइलों में परिवर्तन नहीं किया है, तो इसका उपयोग न करें ! मैंने इसका उपयोग किया और इसने मेरे द्वारा बनाई गई सामग्री के साथ पहले से तैयार की गई फ़ाइलों को हटा दिया! :) इसलिए पहले कमिट करें और फिर साफ करें
कलाफुन

44

सभी उत्तर बहुत अच्छे हैं, लेकिन यहां हर उपयोगकर्ता के लिए अलग-अलग मैक (घर और कार्यालय) में काम करने पर उसे हटा दिया जाएगा।

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

20

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


17

यदि यहां बताई गई हर बात को करने के बाद भी फ़ाइल दिखाई देती है, तो सुनिश्चित करें कि Xcode सेटिंग्स में यह चेकबॉक्स अनियंत्रित है:

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



7

यहां कुछ डेमो और शॉर्ट कट हैं यदि आप गिटहब का उपयोग करते हैं, तो मूल विचार समान हैं।

1. इस तरह टर्मिनल खोलें

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

2. टर्मिनल के नीचे की कमांड को एक स्पेस के बाद पेस्ट करें और फिर .xcuserstate फ़ाइल का पथ बस इस तरह पेस्ट करें

git rm --cached यहां छवि विवरण दर्ज करें

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

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


4

यहाँ एक बहुत अच्छी व्याख्या है कि कैसे अपने गिट इतिहास से पुनरावृत्ति में फ़ाइलों को हटाने के लिए: http://help.github.com/remove-sensitive-data/

बहुत उपयोगी है, क्योंकि अन्यथा उपकरण उन बड़ी फ़ाइलों पर भिन्न दिखाने की कोशिश करते हुए 'हैंग' करते हैं, जिन्हें पहली बार में जांचना नहीं चाहिए था ...

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

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

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


2

मेरे लिए कुछ भी काम नहीं आया, लेकिन यह

इस लाइन को अपने gitignore में जोड़ें

*.xcuserdata

1

यह मेरे लिए काम करता है

  1. उस फ़ोल्डर को खोलें जिसमें project.xcworkspaceटर्मिनल से प्रोजेक्ट फ़ाइल है।

  2. इस कमांड को लिखें: git rm --cached *xcuserstate

इससे फाइल निकल जाएगी।


0

For.३.३ के लिए I.३.३ मैंने अभी-अभी उपरोक्त कोड की जाँच की और निरीक्षण किया कि, अब इस कैसवे में कमांड को इस तरह बदलना होगा

पहले आप उपयोग करके .gitignore फ़ाइल बना सकते हैं

 touch .gitignore

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

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

-1

मुझे लगता है कि इस तरह से लिखना बेहतर होगा।

git rm - cache * / /UserInterfaceState.xcuserstate.com

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