स्थानीय रूप से एक शाखा कैसे निकालें?


159

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

स्थानीय रूप से और दूरस्थ रूप से शाखाओं को हटाने के तरीके के बारे में यहां सवाल हैं , लेकिन मुझे यह पता नहीं चल पाया है कि स्थानीय रूप से केवल एक शाखा को कैसे हटाया जाए।

इसका उपयोग करने के लिए एक उत्तर ने कहा:

git branch -d local_branch_name

लेकिन मैंने कोशिश की कि और GitHub एप्लिकेशन में शाखा अभी भी दिखाई दे।


उस कमांड से आउटपुट क्या है? आप किस शाखा में हैं? यह कंसोल में कैसे दिखाई दे रहा है?
SLACs 2

मेरे प्रश्न में @slaks का एक प्रकार था। कंसोल में यह वास्तव में कहता है कि शाखा को हटा दिया गया था, लेकिन गिटहब एप्लिकेशन में (इसे पुनरारंभ करने के बाद भी) शाखा और प्रतिबद्ध अभी भी दिखाई दे रहे हैं। आउटपुट हैDeleted branch master (was e8a8e29).
नैट

विंडोज के लिए GitHub दूरस्थ शाखाओं को भी दिखाता है
SLAKs

@SLaks स्थानीय रूप से शाखा को हटाने के बाद, अगर मैं विंडोज एप्लिकेशन के लिए GitHub में इस पर क्लिक करता हूं तो क्या यह इसे फिर से क्लोन कर रहा है? मैं खुद को सीधे मास्टर शाखा में परिवर्तन करने में सक्षम होने से रोकना चाहता हूं।
नैट

जवाबों:


114

मुझे लगता है कि (आपकी टिप्पणियों के आधार पर) जो मुझे समझ में आया कि आप क्या करना चाहते हैं: आप चाहते हैं कि रिपॉजिटरी की आपकी स्थानीय प्रति न तो साधारण स्थानीय शाखा के पास हो master, न ही रिमोट-ट्रैकिंग शाखा origin/master, भले ही आपके द्वारा रिपॉजिटरी का क्लोन बनाया गया हो - -एक स्थानीय शाखा masterजिसे आप गितूब संस्करण से हटाना नहीं चाहते हैं।

आप दूरस्थ-ट्रैकिंग शाखा को स्थानीय रूप से हटाकर ऐसा कर सकते हैं, लेकिन यह हर बार जब भी आप अपने git से दूरस्थ रिपॉजिटरी के साथ अपने स्थानीय रिपॉजिटरी को सिंक्रनाइज़ करने के लिए कहेंगे, क्योंकि आपका git "क्या शाखाएँ आपके पास है" यह पूछता है और यह कहते हैं, "मेरे पास master" है, इसलिए आपके लिए आपके git (re) का निर्माण होता origin/masterहै, ताकि आपकी रिपॉजिटरी में उनके पास क्या हो।

स्थानीय रूप से कमांड लाइन इंटरफ़ेस का उपयोग करके अपनी रिमोट-ट्रैकिंग शाखा को हटाने के लिए:

git branch -d -r origin/master

लेकिन फिर से, यह सिर्फ पुनः सिंक्रनाइज़ेशन पर वापस आ जाएगा। यह है इस (का उपयोग कर के रूप में अच्छी तरह से हराने के लिए संभव remote.origin.fetchहेरफेर), लेकिन आप शायद बेहतर बंद सिर्फ पर्याप्त नहीं बना सकते या संशोधित करने के लिए अनुशासित किया जा रहा हैं masterस्थानीय स्तर पर।



99

स्थानीय शाखा को हटाएं:

$ git branch -D <branch_name>

[ नोट ]:

"-D" बल हटाना विकल्प है।



6
अगर मैं एक स्थानीय शाखा को हटा देता हूं जिसमें एक अपस्ट्रीम सेट होता है और फिर एक सामान्य धक्का होता है तो यह रिमोट शाखा को सही नहीं हटाएगा?
कॉफी


17

जहां तक ​​मैं मूल समस्या को समझ सकता हूं, आपने गलती से स्थानीय मास्टर को जोड़ा और उस बदलाव को आगे नहीं बढ़ाया। अब आप अपने परिवर्तनों को रद्द करना चाहते हैं और अपने स्थानीय परिवर्तनों को हटाने और रिमोट से एक नई मास्टर शाखा बनाने की उम्मीद करते हैं।

आप बस अपने परिवर्तनों को रीसेट कर सकते हैं और दूरस्थ सर्वर से मास्टर को पुनः लोड कर सकते हैं:

git reset --hard origin/master

13

विंडोज के लिए जीथब एप्लिकेशन एक रिपॉजिटरी की सभी दूरस्थ शाखाओं को दिखाता है। यदि आपने स्थानीय रूप से शाखा को हटा दिया है $ git branch -d [branch_name], तो दूरस्थ शाखा अभी भी आपके गितुब भंडार में मौजूद है और विंडोज गिफ्ट एप्लिकेशन में परवाह किए बिना दिखाई देगी।

यदि आप शाखा को पूरी तरह से हटाना चाहते हैं (साथ ही दूरस्थ रूप से), तो इसके साथ संयोजन में उपरोक्त कमांड का उपयोग करें $ git push origin :[name_of_your_new_branch]चेतावनी: यह आदेश सभी मौजूदा शाखाओं को मिटा देता है और कोड का नुकसान हो सकता है। सावधान रहें, मुझे नहीं लगता कि यह आप करने की कोशिश कर रहे हैं।

हालाँकि हर बार जब आप स्थानीय शाखा परिवर्तन हटाते हैं, तो दूरस्थ शाखा अभी भी एप्लिकेशन में दिखाई देगी। यदि आप परिवर्तन करना नहीं चाहते हैं, तो इसे अनदेखा करें और क्लिक न करें, अन्यथा आप रिपॉजिटरी को क्लोन कर सकते हैं। यदि आपके कोई और प्रश्न हैं, तो कृपया मुझे बताएँ।


1

आपको दूसरी शाखा में स्विच करने की आवश्यकता है और उसी को आज़माएं।

git शाखा -d


1
क्या यह एक उत्तर माना जाता है? या एक स्पष्टीकरण qustion? या एक सादा सवाल? यह इतना छोटा है कि मैं बता नहीं सकता। क्या आप विस्तृत करना चाहेंगे?
युन्नोस्क

0

आपके टैग के द्वारा, मैं Github का उपयोग करके आपका अनुमान लगा रहा हूँ। अपनी मास्टर शाखा के लिए कुछ शाखा सुरक्षा नियम क्यों नहीं बनाएं? इस तरह अगर आप गुरु को आगे बढ़ाने की कोशिश करते हैं, तो भी इसे अस्वीकार कर दिया जाएगा।

1) गितुब पर अपने रेपो के 'सेटिंग' टैब पर जाएं।

2) बाईं ओर के मेनू पर 'शाखाओं' पर क्लिक करें।

3) 'नियम जोड़ें' पर क्लिक करें

4) एक शाखा पैटर्न के लिए 'मास्टर' दर्ज करें।

5) 'विलय से पहले पुल अनुरोध की समीक्षा की आवश्यकता' की जाँच करें

मैं आपकी देव शाखा के लिए भी यही करने की सलाह दूंगा।

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