2011-12-23 14 views
88

इसलिए मैं गिट + गिटहब का उपयोग शुरू कर रहा हूं।गिट शाखा को कैसे बंद करें?

हमारी छोटी वितरित टीम में, प्रत्येक सदस्य आवंटित प्रत्येक मुद्दे/आवश्यकता के लिए अपनी शाखा बना रहा है।

  1. git branch Issue#1 <-- create this branch
  2. git checkout issue#1 <-- switch over to this branch

अब code code, commit, code, commit, आदि ...

तो pull request, code-fixup, commit, code, commit .. आदि

और आखिरकार ... पुल अनुरोध स्वीकार कर लिया गया है।

वूट।

लेकिन .. अब क्या? (...... अजीब ......)

क्या वह व्यक्ति जिसने अपनी स्थानीय देव मशीन पर शाखा बनाई है, उसे शाखा बंद करना होगा? देव व्यक्ति को शाखा '(... -D ...) को हटाने के लिए एक सुझाव था और फिर मास्टर के पुल/रीफ्रेश करें .. जो तब उनके सभी शाखा कोड प्राप्त करेगा।

Hmmmmm ... यकीन नहीं - कृपया मदद :)

+14

गिट में एक शाखा एक विशिष्ट प्रतिबद्धता पर सिर्फ एक लेबल है - इसलिए मूल रूप से, अगर आपको इसकी आवश्यकता नहीं है - बस उस "शाखा" को हटाएं (उस प्रतिबद्धता पर "लेबल")। स्थानीय रूप से, बस एक 'गिट शाखा अंक # 1-डी' करें और यह सब कुछ है - कोई कोड गुम नहीं है, बस आपके भंडार –

+1

@marc_s से एक लेबल हटा दिया गया है, मैं सुझाव देता हूं कि बस इसका उत्तर दें :) – KingCrunch

+0

तो @marc_s - आप कह रहे हैं कि मानक शाखा एक बार आपने अपनी शाखा को खत्म कर दिया है .. और शाखा को धक्का दिया गया है .. हम इसे हटा देते हैं? विलय के बारे में क्या? –

उत्तर

152

हमारा अनुरोध है कि डेवलपर पुल अनुरोध राज्य के लिए पूछ नष्ट करने के लिए है कि वे शाखा नष्ट कर दिया चाहते हैं शाखा मर्ज करें। ज्यादातर समय यह मामला है। ऐसे समय होते हैं जब शाखा की आवश्यकता होती है (उदाहरण के लिए किसी अन्य रिलीज शाखा में परिवर्तनों की प्रतिलिपि बनाना)।

git checkout <feature-branch> 
git pull 
git checkout <release-branch> 
git pull 
git merge --no-ff <feature-branch> 
git push 
git tag -a branch-<feature-branch> -m "Merge <feature-branch> into <release-branch>" 
git push --tags 
git branch -d <feature-branch> 
git push origin :<feature-branch> 

एक शाखा काम के लिए है:

मेरी उँगलियाँ हमारी प्रक्रिया याद है। एक टैग समय पर एक जगह चिह्नित करता है। प्रत्येक शाखा विलय को टैग करके हम शाखा की पुनरुत्थान कर सकते हैं यदि इसकी आवश्यकता हो। परिवर्तनों की समीक्षा के लिए शाखा टैग कई बार इस्तेमाल किया गया है।

+7

हमने अपनी प्रक्रिया में हाल ही में बदलाव किया है। 'गिट पुश - टैग्स' का उपयोग भारी हाथ है और सभी टैग डाउनलोड करता है। यह आपके स्थानीय टैग होने में मुश्किल हो जाता है। इसके बजाय हम केवल एक टैग को धक्का देने के लिए 'गिट पुश मूल शाखा- <सुविधा-शाखा>' का उपयोग करते हैं। –

+0

तो आखिरी पंक्ति, आपको फीचर शाखा के लिए टैग नाम का उपयोग करना याद रखना होगा, जिसे हमने पहले > की बजाय "शाखा- <सुविधा-शाखा>" पर सेट किया था। सही बात? –

+0

@PremierBromanov अंतिम पंक्ति दूरस्थ शाखा को हटाने के लिए है। याद रखने के लिए टैग @ बिलडूर ने 'गिट पुश - टैग्स' का उपयोग किया है। – Deivide

37

हाँ, बस git push origin :branchname चलाकर शाखा को हटा दें। बाद में एक नई समस्या को ठीक करने के लिए, मास्टर से फिर से शाखा बंद करें।

+3

वह रिमोट शाखा को हटा देगा, स्थानीय नहीं। – KingCrunch

+3

मुझे नहीं पता कि यह -2 पर क्यों संशोधित है, यह सही जवाब है। उनके पास निश्चित रूप से एक दूरस्थ शाखा है, वे इसके खिलाफ पीआर जारी कर सकते हैं? –

+1

@ पॉलबेट्स मैं सहमत हूं। मैंने इसे भी वोट दिया। – gilligan

34

पूरा करने के बाद कोड पहले तो गुरु कि शाखा

git checkout master 
git merge <branch-name> 
git branch -d <branch-name> 
+0

और यह मेरी खुद की देव मशीन पर है, है ना? मुख्य व्यक्ति जो कोई नया कोड स्वीकार करता है .. उसकी मशीन कहीं और है। –

+2

यदि कोई और विलय कर रहा है, तो उसके पास आमतौर पर एक अलग रिमोट में आपकी शाखा सूचक है, उदा। प्रेषक/शाखा-नाम। उसे करने के बाद उसे छुटकारा पाने के लिए उसे 'गीट रिमोट प्रून प्रेषक' का उपयोग करने की आवश्यकता होगी - हालांकि ज्यादातर मामलों में, उसे परवाह नहीं है। –

+1

* आपको * अपनी शाखा को तब तक विलय नहीं करना चाहिए जब तक आप मुख्य पेड़ में इसे एकीकृत करने के लिए ज़िम्मेदार न हों। यदि आप नहीं हैं और आपने इसे किसी और को एकीकृत करने के लिए कहा है, तो अपनी दूरस्थ शाखा को नए रिमोट कमेट्स के साथ अपडेट करें - इसमें आपके द्वारा खींचे जाने के लिए अनुरोध किए गए कुछ भी शामिल होना चाहिए - और फिर अपनी शाखा हटाएं। यह सुनिश्चित करता है कि अगर कोई अन्य व्यक्ति चीजों को बदल देता है तो आपको कोई समस्या नहीं होगी। – ThiefMaster

संबंधित मुद्दे