2013-02-23 22 views
11

गिट के साथ कुछ करने के अपने पहले प्रयास में मैंने विंडोज के लिए गिटहब का उपयोग किया। चूंकि यह सरल और काफी प्राचीन उपकरण है, मैंने स्मार्टगिट को आजमाने का फैसला किया। जैसा कि मैं चारों ओर देख रहा था, मैंने पाया कि मेरे पास अपने परीक्षणों पर बचे हुए हैं - कुछ "खोए हुए सिर" कहा जाता है। मैं इस कचरे से कैसे छुटकारा पा सकता हूं? ऐसा लगता है किमैं "खोया सिर" से कैसे छुटकारा पा सकता हूं?

git gc --prune=now 

या कुछ समान काम करना चाहिए, लेकिन कुछ भी नहीं बदला। मैंने googling की कोशिश की, लेकिन सभी रिवर्स चीज करने की कोशिश कर रहा था - खोए हुए सिर से कुछ खोया काम बहाल या कुछ इसी तरह।

उत्तर

10

man page के अनुसार, git gc कचरा फाइलों को कचरा नहीं करेगा जो 'रेफ्लॉग' (.git/logs/<ref-name> फाइलें आपके भंडार में) के माध्यम से संदर्भित हैं। ये HEADs ठीक है SmartGit/Hg प्रदर्शित करता है और जब आप इन लॉग को हटाते हैं, तो संदर्भित काम git gc --prune=now द्वारा एकत्र किया जाना चाहिए।

चेतावनी जब तक वहाँ कोई वास्तव में अच्छा कारण पूरी तरह से इन प्रतिबद्ध (संवेदनशील डेटा को हटाने की तरह) से छुटकारा पाने के लिए है, आप ऐसा नहीं करना चाहिए - हो सकता है कुछ समय बाद अपने वास्तव में इन प्रतिबद्ध में से एक में रुचि हो सकती । कम से कम, डिस्क स्पेस को पुनः दावा करना मेरी राय में कोई अच्छा कारण नहीं है।

+1

डिस्क स्पेस पुनः प्राप्त करने का मेरा कारण नहीं है (मेरा गिट भंडार उपलब्ध स्थान के 0,01% से कम लेता है) - मैं हर जगह लटकते हुए "aaaeaeae test 2626" से छुटकारा पाना चाहता हूं। – Bulwersator

+0

कुछ समय बाद मेरे पास सैकड़ों होने पर मेरी प्रतिबद्धता को ढूंढना मुश्किल है। यह मेरे लिए वैध कारण होगा। – pevik

+0

@pevik, अगर कई खोए गए सिर लॉग उलझन में डालते हैं, तो बस विकल्प को अनचेक करें और केवल तभी पुन: जांच की आवश्यकता हो। – mstrap