2010-07-21 14 views
5

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

धन्यवाद,

ज़ैक

यह वही मेरी .gitignore फ़ाइल में है:

# xcode noise 
*.mode1v3 
*.pbxuser 
*.perspective 
*.perspectivev3 
*.pyc 
*~.nib/ 
build/* 

# Textmate - if you build your xcode projects with it 
*.tm_build_errors 

# old skool 
.svn 

# osx noise 
.DS_Store 
profile 
+0

आपका क्या मतलब है "मेरे परिवर्तन करने के लिए जाओ"? गैर-अनदेखा गैर-जोड़े गए फ़ाइलें केवल "गिट स्थिति" के साथ दिखाई देती हैं और ऐसे –

+1

यह एक बेवकूफ सवाल हो सकता है, लेकिन क्या आपने कभी अपनी प्रतिबद्धता को अपडेट करने से पहले इंडेक्स में पहले देखा है या इसे इंडेक्स में जोड़ा है? –

उत्तर

9

यदि यह Git स्थिति में दिखाने रखने के लिए, यह जोड़ दिया गया है चाहिए या पहले प्रतिबद्ध ।

आप आदेश के लिए git status इसे अब और सूची नहीं करने के लिए (यह सिर्फ जोड़ दिया गया है, लेकिन अभी तक प्रतिबद्ध नहीं) में

  • git rm --cached कि फाइल, की जरूरत है।
  • git rm कि फाइल है, अगर यह पहले से हामी भर दी थी (this question for instance देख)
+0

गिट आरएम - कैश के बारे में सलाह गलत है। कृपया नीचे मेरा जवाब देखें। – jpswain

+0

git rm --cached का उपयोग केवल आपके स्थानीय रेपो से फ़ाइल को निकालने के लिए किया जाता है। यह वही है जो मैं –

3

.gitignore केवल ट्रैक न किए गए फ़ाइलों के लिए लागू होता है। यदि आपके पास git-add'ed फ़ाइलें हैं जो अन्यथा .gitignore के कारण अनचाहे हैं, तो वे अभी भी भंडार का हिस्सा होंगे।

सीधे शब्दों में भंडार से फ़ाइलें निकालने के आप नहीं करना चाहते:

git rm *.perspectivev3 
+1

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

+0

@ ज़ैच बैंक अब मैं इन उत्तरों में से एक को स्वीकार्य मानता हूं, इसलिए उन्हें क्रेडिट मिलता है और अन्य उपयोगकर्ता जानते हैं कि प्रश्न हल हो गया है। – Edd

8

आप

$ git rm --cached ./whatever1.txt

उपयोग कर सकते हैं के बाद कुछ संस्करण नियंत्रण में पहले से ही है।

वास्तव में, यदि आप संस्करण नियंत्रण में "whatever1.txt" है और आप Git से हटाने, लेकिन अपने काम के पेड़ अबाधित छोड़ना चाहते हैं, तो बस ऐसा करते हैं:

$ git rm --cached ./whatever1.txt 
$ echo /whatever1.txt >> ${PROJECT_ROOT}/.gitignore 
$ git status # this will now show ./whatever1 as "deleted" (from git, not your working tree, and will show gitignore as modified or created) 
$ git commit -a 

और बस हो गया।

तभी इसका उपयोग

$ git rm

जब आप दोनों काम कर पेड़ और Git रेपो से फ़ाइल निकालना चाहते हैं।

CAVEAT: संभावित परिदृश्य जो आप इसका उपयोग करेंगे, वह गिट से आईडीई-विशिष्ट फ़ाइलों को हटाने के लिए है। इस उदाहरण में "जो भी 1" आपकी आईडीई फ़ाइल का प्रतिनिधित्व करता है जिसे आप हटा रहे हैं। यदि आप कई लोगों के साथ एक परियोजना पर काम कर रहे हैं और आप इस परिवर्तन को एक साझा रेपो में धक्का देते हैं, तो जब वे इस परिवर्तन को खींचते हैं तो उनकी "./whatever1" फ़ाइलों को हटा दिया जाएगा। प्राप्त अंत पर लोगों के लिए यहां से करना आसान बात है:

$ git checkout 1215ef -- ./file-you-want-to-restore ./another-file ./another-etc 

(जहां 1215ef का प्रतिनिधित्व करता है पिछले हटाए जाने से पहले प्रतिबद्ध)

यह उन फ़ाइलों कि में मौजूद थे बहाल करने का प्रभाव पड़ता है खींचने से पहले उनकी आखिरी प्रतिबद्धता।ऐसा करने के बाद ये फ़ाइलें सुरक्षित होंगी और अपरिचित बी/सी के रूप में दिखाई नहीं देगी, वे गिटिनोरोर के बहिष्कार के तहत आ जाएंगी।

शुभकामनाएं!

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