आदेश git branch -aदूरस्थ शाखाओं को दिखाता है जो आपके स्थानीय भंडार में मौजूद हैं । यह थोड़ा भ्रामक लग सकता है लेकिन इसे समझने के लिए, आपको यह समझना होगा कि एक दूरस्थ शाखा और एक शाखा के बीच एक अंतर है जो एक दूरस्थ भंडार में मौजूद है। दूरस्थ शाखाएँ स्थानीय शाखाएँ होती हैं जो दूरस्थ रिपॉजिटरी की शाखाओं को मैप करती हैं। तो दूरस्थ शाखाओं का समूह दूरस्थ रिपॉजिटरी की स्थिति का प्रतिनिधित्व करता है।
दूरस्थ शाखाओं की सूची को अपडेट करने का सामान्य तरीका उपयोग करना है git fetch। यह स्वचालित रूप से रिमोट से शाखाओं की एक अद्यतन सूची प्राप्त करता है और स्थानीय रिपॉजिटरी में दूरस्थ शाखाएं सेट करता है, साथ ही आपके द्वारा गायब की जाने वाली किसी भी प्रतिबद्ध वस्तुओं को प्राप्त कर सकता है।
हालाँकि, डिफ़ॉल्ट रूप से, उन git fetchदूरस्थ शाखाओं को नहीं हटाता है जिनके पास रिमोट पर समकक्ष शाखा नहीं है। ऐसा करने के लिए, आपको सुदूर शाखाओं की सूची को स्पष्ट रूप से बताने की आवश्यकता है :
git fetch --prune
इससे स्वचालित रूप से दूरस्थ शाखाओं से छुटकारा मिल जाएगा जो अब रिमोट पर मौजूद नहीं हैं। बाद में, git branch -rआपको उन शाखाओं की एक अद्यतन सूची दिखाएगी जो वास्तव में रिमोट पर मौजूद हैं: और जिन्हें आप उपयोग करके हटा सकते हैं git push।
कहा जा रहा है, उपयोग करने के लिए git push --delete, आपको दूरस्थ रिपॉजिटरी पर शाखा का नाम निर्दिष्ट करने की आवश्यकता है; आपकी दूरस्थ शाखा का नाम नहीं। तो शाखा को हटाने के लिए test(आपकी दूरस्थ शाखा द्वारा प्रतिनिधित्व origin/test), आप उपयोग करेंगे git push origin --delete test।
git branch -aआपके स्थानीय में शाखाओं को सूचीबद्ध करेगा और आपके रिमोट से नहीं। सही?