प्रिटिंग क्या है?


86

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

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


के संभावित डुप्लिकेट stackoverflow.com/questions/4040717/...
राघवन

1
देखने लायक हो सकता है git gc: git-scm.com/docs/git-prune भी।
कोवैक

जवाबों:


91

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

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


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

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

32

यह सिर्फ कचरा आपकी शाखाओं को इकट्ठा करता है।

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

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


4
प्रलेखन के अनुसार, घर के कामों को इस तरह से करने के git gcबजाय यह बेहतर हो सकता है कि एक git pruneअनिवार्य रूप से एक अच्छी तरह से एकिट प्रून भी करेंगे।
कोवैक

1
डाउनवोट: यह उत्तर (और उस मामले के लिए प्रश्न) भ्रमित करता है git pruneऔर git remote prune। वे समान नहीं हैं, बाद वाले वास्तव में शाखाओं को साफ करते हैं जो अब स्थानीय शाखाओं को अछूता छोड़ते हुए रिमोट पर मौजूद नहीं हैं।
16

12

यह जानना महत्वपूर्ण है कि प्रून रेपो-बाउंड है । हर कोई नहीं जानता कि आप अपने स्थानीय रेपो को कई रीमेक से जोड़ सकते हैं। यह तब काम आता है जब, उदाहरण के लिए, आप एक ओपन-सोर्स प्रोजेक्ट के साथ काम करते हैं और कांटे के माध्यम से काम करने के लिए लागू किया जाता है।

तो, प्रून कमांड को रेपो नाम की आवश्यकता होती है। ज्यादातर मामलों में यह है git remote prune origin, लेकिन आप अपने रेपो को कुछ भी कह सकते हैं, यह होना जरूरी नहीं है origin


2

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.