2011-09-29 8 views
21

पर छोड़ दें मैं गिट रिपॉजिटरी से अनावश्यक फ़ाइलों को हटाने का प्रयास करता हूं। उन फ़ाइलों को शुरू में जोड़ा गया था और अब वे कई शाखाओं में हैं। मैं जो चाहता हूं वह बस उन फ़ाइलों में परिवर्तनों को ट्रैक करना बंद कर देता है, मुझे कोई परवाह नहीं है कि परिवर्तन में क्या रहना चाहिए, लेकिन मुझे फाइल सिस्टम पर रहने के लिए उन फ़ाइलों की आवश्यकता है।गिट फ़ाइल को रिपॉजिटरी से हटा दें लेकिन इसे फाइल सिस्टम

मैं

git filter-branch --index-filter "git rm --cached --ignore-unmatch file_to_remove" HEAD 

निम्नलिखित की कोशिश की लेकिन फाइल सिस्टम से कि हटाया फ़ाइल क्या अवांछित है।

+1

मैं आमतौर पर फ़ाइलों की प्रतिलिपि कहीं कि आदेश चलाने से पहले। गिट के बाद उन्हें हटा दिया जाता है, मैं उन्हें .gitignore में जोड़ता हूं और फिर प्रतियों को वापस ले जाता हूं। –

+0

हम्म, अच्छा हैक। मैंने इसके बारे में सोचा नहीं है –

+1

@ मिशा क्या आप उन्हें ट्रैक करना बंद करना चाहते हैं, या उन्हें पूरी तरह से भंडार से हटा दें? आप अपने प्रश्न में एक बात और एक टिप्पणी में एक और कहते हैं। – Andy

उत्तर

27

बस:

git rm --cached file [file ...] 

बेशक आप हमलावर फ़ाइलों को आपके .gitignore तो वे सीधे recommitted नहीं मिलता लिए जोड़ रहे हैं सुनिश्चित करने के लिए की आवश्यकता होगी

+1

मैं उन्हें सभी शाखाओं से भंडार से पूरी तरह से हटाना चाहता हूं। जब मैं कहता हूं, फ़ाइल को ट्रैक किया जा रहा है, लेकिन मैं शाखा स्विच नहीं कर सकता, गिट कहते हैं 'फ़ाइल स्तर विलय आवश्यक है। शाखा 'पर रहें। –

2

आप फ़ाइल को रखना चाहते हैं भंडार में, आप का उपयोग कर सकते हैं:
git update-index --assume-unchanged <fileName>

इस सूचकांक में फ़ाइल के वर्तमान संस्करण रहता है, लेकिन आप यह सब आप चाहते हैं बदल सकते हैं और Git उन चा पर ध्यान नहीं देगा nges।

+0

मैंने पाया है कि उनका दृष्टिकोण केवल ** अस्थायी ** कामकाज के रूप में अच्छा है। आपको एक और शाखा की जांच करने से रोका जाएगा जिसमें फ़ाइल की सामग्री वर्तमान शाखा से अलग है। –

0

चेकआउट और प्रत्येक शाखा के लिए साफ़ करें।

Git साफ - रिकर्सिवली, फ़ाइलों को संस्करण नियंत्रण में नहीं हैं को हटाने के मौजूदा निर्देशिका से शुरू करके काम कर पेड़

साफ काम कर पेड़ से ट्रैक न किए गए फ़ाइलें निकालें।

https://git-scm.com/docs/git-clean

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