ऐसा लगता है कि आप 2011_Hotfix
अपना इतिहास खोए बिना शाखा को हटाना चाहते हैं । मैं पहले विलोपन और दूसरे पर इतिहास पर चर्चा करूंगा।
सामान्य git
शाखा हटाने के तरीके पहले ही ऊपर वर्णित किए गए हैं, और वे उम्मीद के मुताबिक काम करते हैं। git
एक या दो शब्द कमांड नहीं है जिसका अर्थ है, "अरे git
, स्थानीय और दूरस्थ शाखा दोनों को हटाएं।" लेकिन शैल लिपि के माध्यम से इस व्यवहार की नकल की जा सकती है। उदाहरण के लिए, ज़च होल्मन की शेल स्क्रिप्ट 'गिट-न्यूक' को लें । यह बहुत ही सरल है:
#!/bin/sh
git branch -D $1
git push origin :$1
इसे अपनी एक निर्देशिका में निष्पादन योग्य फ़ाइल (जैसे, git-nuke
) में रखें $PATH
। यदि आप 2011_Hotfix
शाखा पर नहीं हैं , तो आप बस git-nuke 2011_Hotfix
स्थानीय और दूरस्थ दोनों शाखाओं को हटा देंगे। यह मानक की तुलना में अधिक तेज़ और सरल है - हालांकि शायद अधिक खतरनाक हैgit
कमांड की ।
इतिहास को संरक्षित करने की आपकी चिंता एक अच्छी बात है। इस मामले में, आपको चिंतित होने की आवश्यकता नहीं है। एक बार जब आप मर्ज 2011_Hotfix
कर देते हैं master
, तो सभी कमिट्स को कमिटेड हिस्ट्री में 2011_Hotfix
जोड़ दिया जाएगा master
। संक्षेप में, आप एक साधारण मर्ज से इतिहास नहीं खोएंगे।
मेरे पास जोड़ने के लिए एक और शब्द है जो शायद आपके प्रश्न के दायरे से परे है, लेकिन फिर भी प्रासंगिक है। आइए कल्पना करें कि 20 छोटे हैं, "काम-में-प्रगति" पर काम करता है 2011_Hotfix
; हालाँकि, आप केवल एक पूर्ण वचनबद्धता 2011_Hotfix
को master
इतिहास में जोड़ना चाहते हैं । आप सभी 20 छोटे-छोटे कामों को एक बड़ी प्रतिबद्धता में कैसे जोड़ते हैं? सौभाग्य से, git
आप का उपयोग करके एक प्रतिबद्ध में कई कमिट को समेकित करने की अनुमति देता है git-rebase
। मैं यहाँ नहीं समझाऊँगा कि यह कैसे काम करता है; हालांकि, यदि आप रुचि रखते हैं, तो इसके लिए प्रलेखनgit-rebase
उत्कृष्ट है। ध्यान दें कि git rebase
इतिहास को फिर से लिखता है, इसलिए इसका उपयोग विवेकपूर्ण तरीके से किया जाना चाहिए, खासकर यदि आप इसके लिए नए हैं। अंत में, आपका 2011_Hotfix
परिदृश्य एक देव टीम के बारे में है, न कि एकल देव के बारे में। यदि प्रोजेक्ट टीम के सदस्य उपयोग करते हैंgit rebase
, यह टीम के लिए बुद्धिमान दिशा निर्देश है git rebase
कि आदेश में उपयोग पर स्पष्ट निर्देश है कि टीम पर कुछ चरवाहा देव परियोजना के git
इतिहास को अनजाने में नुकसान नहीं पहुंचाते हैं ।