2016-03-18 10 views
32

मैंने कुछ दूरस्थ शाखाओं को गलती से हटा दिया है और मुझे वास्तव में पता नहीं है कि इसका क्या परिणाम है (मैंने गिट एक्सटेंशन में "प्रून रिमोट शाखाएं" बटन पर क्लिक किया, यह सोचकर कि यह एक दूरस्थ शाखा को हटा देगा)।गिट काटने का क्या मतलब है?

आधिकारिक दस्तावेज कहता है "गिट-प्रून - ऑब्जेक्ट डेटाबेस से सभी पहुंच योग्य वस्तुओं को प्रूफ करें"। मैं वास्तव में समझ में नहीं आता कि इसका क्या अर्थ है। मुझे लगता है कि यह विलय की शाखाओं को हटा दिया हो सकता है लेकिन मुझे सच में यकीन नहीं है।

+0

http://stackoverflow.com/questions/4040717/git-remote-prune-didnt-show-as-many-pruned-branches-as-i-expected – Raghavan

+0

का संभावित डुप्लिकेट 'git gc को देखने लायक हो सकता है ': https://git-scm.com/docs/git-prune भी। – swdon

उत्तर

33

गिट एक्सटेंशन में "प्रून रिमोट शाखाएं" git remote prune कमांड निष्पादित करता है, जो आपकी स्थानीय रिमोट ट्रैकिंग शाखाओं को हटा देता है जहां शाखा रिमोट पर मौजूद नहीं है।

यहाँ देखें: https://git-scm.com/docs/git-remote#git-remote-empruneem

+0

तो यह मूल रूप से आपके रिमोट को प्राथमिकता देता है और आपकी दूरस्थ शाखाओं से मेल खाने के लिए अपने स्थानीय समायोजित करता है? – Honey

+0

@ हनी नहीं, यह सिर्फ स्थानीय ** दूरस्थ ट्रैकिंग शाखाओं को हटा देता है **, सामान्य शाखाएं छुआ नहीं जाती हैं। – 1615903

14

यह सिर्फ कचरा आपकी शाखाएं एकत्र करता है।

Thats का मतलब है, यदि किसी भी शाखा के पूर्वजों में कोई ऑब्जेक्ट (एक प्रतिबद्ध) नहीं पहुंचा जा सकता है, तो इसे गिट डेटाबेस के लिए हटा दिया जाएगा, और इस तरह से अब तक नहीं पहुंच सका।

यह सिर्फ थोड़ा गिट भंडार साफ करता है और इसे हल्का बनाता है।

+0

दस्तावेज़ीकरण के मुताबिक, घर के रखरखाव के कार्यों के लिए यह 'गिट जीएन'' करने के बजाय बेहतर हो सकता है जो 'गिट प्रून' की बजाय अनिवार्य रूप से एक गिट प्रिंस भी करेगा। – swdon

0

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

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