मर्ज होने के बाद शाखा का क्या करें


342

मेरी दो शाखाएँ थीं: masterऔर branch1। मैं अभी branch1वापस विलीन हो गयाmaster और मैं उस शाखा के साथ हो गया। क्या मुझे इसे हटाना चाहिए या बस इसे चारों ओर बैठने देना चाहिए? क्या इसे हटाने से डेटा का कोई नुकसान होगा?


जवाबों:


410

मर्ज के बाद, शाखा को हटाना सुरक्षित है:

git branch -d branch1

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

हालांकि शाखा रखने के कुछ कारण हैं। उदाहरण के लिए, यदि यह एक सुविधा शाखा है, तो आप उस शाखा के अंदर अभी भी उस सुविधा पर बगफिक्स करने में सक्षम हो सकते हैं।

यदि आप दूरस्थ होस्ट पर शाखा को हटाना चाहते हैं, तो आप ऐसा कर सकते हैं:

git push origin :branch1

यह रिमोट पर शाखा को बलपूर्वक हटा देगा (हालांकि यह पहले से चेक-आउट किए गए रिपॉजिटरी को प्रभावित नहीं करेगा और फिर से पुश-पुश / इसे बनाने के लिए पुश एक्सेस के साथ किसी को भी नहीं रोकेगा)।


git reflogहाल ही में चेक किए गए संशोधनों को दिखाता है। आपके द्वारा हाल ही के भंडार इतिहास में जाँच की गई कोई शाखा भी दिखाई देगी। इसके अलावा, git fsckगिट में किसी भी नुकसान के मामले में पसंद का उपकरण होगा।


यदि आप शाखा को बचाना चाहते हैं तो आप उसे हटाने से पहले एक टैग बना सकते हैं। यदि आप उस बिंदु पर वापस जाना चाहते हैं तो आप उस टैग को चेकआउट कर सकते हैं।
जोकस

3
@ जोकस मैं इसे उस मामले में एक शाखा के रूप में रखने का सुझाव दूंगा। बस इसे प्रकाशित न करें।
जोनास श्फर

बस मामले में - यदि आप शाखा को हटाने से पहले पूरी तरह से "मर्ज" करना चाहते हैं, तो विलय के बाद उस शाखा को धक्का दें, लेकिन हटाने से पहले। कुछ इस तरहgit checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
avtomaton

25

मैं DELETE के बजाय RENAME को पसंद करता हूं

मेरी सभी शाखाओं का नाम के रूप में रखा गया है

  • Fix/fix-<somedescription> या
  • Ftr/ftr-<somedescription> या
  • आदि।

मेरी Git सामने अंत के रूप में टॉवर का उपयोग करना, यह बड़े करीने से सभी का आयोजन करता है Ftr/, Fix/, Test/फ़ोल्डरों में आदि।
एक बार जब मैं एक शाखा के साथ किया जाता है, तो मैं उनका नाम बदल देता हूं Done/...-<description>

इस तरह वे अभी भी वहाँ हैं (जो इतिहास प्रदान करने के लिए काम कर सकते हैं) और मैं हमेशा यह जानने के लिए वापस जा सकता हूं कि यह क्या था (सुविधा, फिक्स, परीक्षण, आदि)


4
क्या आप दूरस्थ शाखाओं का भी नाम बदलते हैं?
विटालिबी

21
यह इन शाखाओं को रखने के लिए बेमानी लगता है , और उनका नाम बदलने के लिए पागल है । क्या मुझसे कोई चूक हो रही है? आप हमेशा शाखा को फिर से बना सकते हैं। stackoverflow.com/questions/3640764/…
ksav

विलय के बाद शाखाओं को रखने का कोई मतलब नहीं है
रस्तमन

2
फिक्स, टेस्ट और पूरा नाम बदलने पर आइडिया के लिए +1 ... शाखाओं को रखना यह है कि ठेकेदारों को मेरी कंपनी पर भुगतान कैसे मिलता है।
jpfreire

1

यदि आप आगे बढ़ेंगे और इसे मर्ज करने के बाद शाखा को हटा देंगे।
बस
अपनी DELETED शाखाओं के सभी हाइपरलिंक URL संदर्भों का ध्यान रखें, BROKEN होगा ।

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