मैंने हाल ही में देखा है कि मेरे टेक्स्ट संपादकों का उपयोग करने वाली प्रोजेक्ट फाइलें (कुछ अन्य जंक के साथ) ने परियोजना के लिए गिट रिपोजिटरी को जोड़ा है। चूंकि वे वास्तव में प्रोजेक्ट का हिस्सा नहीं हैं, इसलिए मैं उन्हें हटाना चाहता हूं, लेकिन git rm
रिपोजिटरी से पुराने संस्करणों को नहीं हटाता है, और मुझे कुछ भी नहीं मिला जो आशाजनक लग रहा है।मैं गिट भंडार से फ़ाइल को पूरी तरह से कैसे हटा सकता हूं?
उत्तर
उपकरण जो आप चाहते हैं git filter-branch
है। इसके उपयोग here वर्णन किया गया है, लेकिन मूल रूप:
$ git filter-branch --tree-filter 'rm -f my_file' HEAD
हर प्रतिबद्ध से "my_file" को हटा देगा।
ध्यान दें कि यह प्रत्येक प्रतिबद्धता को फिर से लिखता है, इसलिए यदि आप रिमोट रिपोजिटरी में धक्का देते हैं, तो आपको (ए) अपडेट को मजबूर करना होगा, और (बी) आपके द्वारा खींचा गया हर कोई अब डुप्लिकेट काम करेगा (चूंकि आप फिर से लिखते हैं इतिहास), जैसा कि git rebase
man page पर वर्णित है।
मैं '--prune-खाली' जोड़ने की अनुशंसा करता हूं ताकि परिणामस्वरूप उत्पन्न कोई भी खाली कार्य हटा दिया जाएगा भी। – fnkr
यह विभिन्न निर्देशिकाओं में एक ही नाम के साथ कई फ़ाइलों के साथ एक भंडार पर कैसे काम करता है? क्या यह एक ही नाम वाली सभी फाइलों को हटा देता है? – CodeMonkey
@CodeMonkey: उस स्थिति में, आप एक लंबा, अद्वितीय पथ का उपयोग करेंगे। – mipadi
यह git filter-branch
है, लेकिन सावधान रहें कि आपका रेपो इतिहास बदल जाएगा, और इतिहास पुन: लिखने के बाद प्रतिबद्ध हैश अलग होंगे।
आप भी स्थान खाली करना चाहते हैं, मैं सुझाव है कि आप git forget-blob
उपयोग करें, क्योंकि अकेले git filter-branch
Git अपनी फ़ाइल भूल जाते हैं, के रूप में यह अभी भी रिमोट, reflog, टैग और इस तरह से संदर्भित किया जा सकता है नहीं होगा।
git forget-blob main.c.swp
आप अधिक जानकारी के here
- 1. गिट भंडार से एक विशिष्ट परिवर्तन हटाएं पूरी तरह से?
- 2. पूरी तरह से गिट डेटाबेस
- 3. मैं समाधान से टीएफएस बाइंडिंग को पूरी तरह से कैसे हटा सकता हूं?
- 4. मैं किसी अन्य भंडार के साथ बिटबकेट रिपॉजिटरी को पूरी तरह से कैसे बदल सकता हूं?
- 5. एक्शनबार शेरलॉक में मैं शीर्षक और आइकन को पूरी तरह से कैसे हटा सकता हूं?
- 6. मैं पीयर इंस्टॉलर का उपयोग कर पूरी तरह से PHPUnit को कैसे हटा सकता हूं?
- 7. मैं रूट पासवर्ड को पूरी तरह से कैसे हटा सकता हूं
- 8. मैं मौजूदा गिट भंडार में किसी फ़ोल्डर से एक नया गिट भंडार कैसे बना सकता हूं?
- 9. ग्रहण: पूरी तरह से पुरानी परियोजना को हटा दें?
- 10. मैं प्रतिभा डिपो से एक फ़ाइल कैसे हटा सकता हूं?
- 11. मेरे एसवीएन भंडार से फ़ाइल को पूरी तरह से निकालना संभव है?
- 12. मैं गिटहब से शाखा कैसे हटा सकता हूं?
- 13. पूरी तरह से एक्सकोड लक्ष्य
- 14. मैं स्थानीय गिट भंडार में रिमोट शाखा को कैसे हटा सकता हूं?
- 15. मोंगोडीबी दस्तावेज़ से पूरी तरह से फ़ील्ड को कैसे निकालें?
- 16. मैं अप्रशिक्षित गिट को कैसे हटा सकता हूं?
- 17. मैं गिट के MERGE_MSG को कैसे हटा सकता हूं?
- 18. एक्जिक्यूटिव को पूरी तरह से कैसे हटाएं
- 19. मैं टेम्पलेट से उपयोगकर्ता श्रेणी को कैसे हटा सकता हूं?
- 20. लॉगकैट को पूरी तरह से कैसे रोकें?
- 21. क्या मैं फ़ायरफ़ॉक्स कैश से विशेष फ़ाइल हटा सकता हूं?
- 22. मैं विंडोज बैच स्क्रिप्ट को पूरी तरह से चुप कैसे बना सकता हूं?
- 23. TinyMCE - पूरी तरह से मान्यता
- 24. मैं IE8 उपयोगकर्ता एजेंट से क्रोमफ़्रेम कैसे हटा सकता हूं?
- 25. मैं स्टेजिंग क्षेत्र से निर्देशिका उपट्री कैसे हटा सकता हूं?
- 26. मैं प्रक्रिया आउटपुट से नई लाइन कैसे हटा सकता हूं?
- 27. मैं QTreeWidgetItem को एक QTreeWidget से कैसे हटा सकता हूं?
- 28. मैं Google geoChart से किंवदंती को कैसे हटा सकता हूं?
- 29. मैं UIViewController से UINavigationBar को कैसे हटा सकता हूं?
- 30. मैं आईआईएस ऑब्जेक्ट्स को सी # से कैसे हटा सकता हूं?
आंशिक डुप्लिकेट, निश्चित रूप से पिछले प्रश्न के अंतर्गत आने वाले प्राप्त कर सकते हैं: http://stackoverflow.com/questions/307828/git-remove-file-accidentally-added-to -the-repository http://stackoverflow.com/questions/1216733/remove-a-directory- स्थायी रूप से- से – Cascabel