2013-07-23 10 views
8

मैं गिट करने के लिए नया हूं और मुझे नहीं पता कि मैं क्या गलत कर रहा हूं। मैं गिट diff --name-only चलाने के लिए चाहता हूं, लेकिन मैं .test में समाप्त होने वाली फ़ाइलों को बहिष्कृत करना चाहता हूं जिसका अर्थ यह है कि भले ही इन haves बदल गए हैं, मैं नहीं चाहता कि यह गिट अलग हो जाए कि यह बदल गया है। मैंने इन फ़ाइल को .gitignore फ़ाइलों में जोड़ने का प्रयास किया लेकिन जो कुछ भी किया गया वह शामिल है। Gitignore जब मैं git diff कमांड चलाता हूं!गिट diff निर्दिष्ट फ़ाइलों को अनदेखा नहीं करता है .gitignore

मैं गलत क्या कर रहा हूं और जब मैं गिट diff चलाता हूं तो मैं फ़ाइलों को कैसे बाहर निकालूं?

+1

अपने .gitignore फ़ाइल – bengoesboom

+1

इसके अलावा आप अपने gitignore फाइल में एक गलती की हो सकता है की सामग्री को दिखाने के, हम अगर तुमने किया था कि देख सकते हैं आप इसे पोस्ट करने के बाद। – usumoio

उत्तर

15

ठीक है, यह आपने गलत किया है। गिट उन फ़ाइलों को ट्रैक करना जारी रखेगा क्योंकि आपने पहले ही अपनी परियोजना में उन्हें ट्रैक करना शुरू कर दिया था। कुछ समय पहले आप को चलाने के लिए एक प्रारंभिक के लिए प्रतिबद्ध है कि देखा पसंद आया:

git add . # this added everything to the tracking system including your .test files 
git commit -a -m 'I just committed everything in my project .test files included' 

बातें लाना अपने gitignore फ़ाइल भविष्य फ़ाइलों है कि आप अपने परियोजना में प्रवेश करने से जो .test में अंत बनाने रखेंगे है, लेकिन आप को हटाने की जरूरत गेट की स्मृति से ट्रैक करने के लिए आपने पहले से ही गिट को बताया है। गिटिनोरोर में चीजें डालने से पहले से ट्रैक की गई फ़ाइलों के लिए कोई भी क्रिया पूर्ववत नहीं होती है।

विकल्प 1::

# you can remove the files from gits tracking system and then put them back 
# when you go to put them back now git will have no memory of tracking these 
# and will consider future edits to be ignored 
# Back your .test files up before doing this, and this will delete them from your project 
git rm /path/to/your/file.test 

विकल्प 2: क्या आप अब क्या करने की जरूरत यह है

# this is safer but does not use gitignore at all 
git update--index --assume-unchanged /path/to/your/file.test 

जब आप विकल्प 2 आप Git कह रहे हैं चलाने के उस समय के बाकी उस फ़ाइल के लिए कभी भी बदल नहीं रहा है (यहां तक ​​कि जब यह वास्तविक जीवन में होता है) यह आपको अपनी ट्रैक की गई परियोजना के हिस्से के रूप में अपनी .test फ़ाइलों को रखने देता है (जैसा कि वे अब हैं), लेकिन गिट आपको कभी भी उनके बारे में कभी भी परेशान नहीं करेगा। ध्यान दें कि इस ऑपरेशन को किसी भी समय पूर्ववत किया जा सकता है और विनाशकारी नहीं है, यही कारण है कि यह सुरक्षित है। इसके अलावा आपको इसे इस्तेमाल करने से पहले इसे पढ़ना चाहिए।

https://www.kernel.org/pub/software/scm/git/docs/git-update-index.html

+2

गिट के लिए 1.8 कमांड होगा: गिट अपडेट-इंडेक्स --assume-unchanged /path/to/your/file.test वैसे, महान जवाब, इससे मुझे बहुत मदद मिली। – fabregas88

+0

कोई समस्या नहीं, मुझे खुशी है कि मैं मदद कर सकता हूं। – usumoio

+4

'git rm --cached' का उपयोग करके फ़ाइल को केवल अनुक्रमणिका से हटा दिया जाएगा - पहले से बैकअप लेने की आवश्यकता नहीं है। – Graeme

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