2011-11-10 11 views
40

मैं अपने काम और master शाखा से नए नव निर्मित शाखा में परिवर्तन कैसे कर सकता हूं और चाल के बाद मास्टर शाखा को बरकरार रख सकता हूं?एक शाखा से दूसरे शाखा गिट में परिवर्तन कैसे स्थानांतरित करें?

उत्तर

39

आप एक नई शाखा git branch branchname का उपयोग कर के लिए प्रतिबद्ध (या git checkout -b branchname आप इसे सीधे बाहर की जाँच करना चाहते हैं) वर्तमान की ओर इशारा करते बना सकते हैं। यह मूल रूप से आपकी मास्टर शाखा को डुप्लिकेट करेगा, ताकि आप वहां पर काम करना जारी रख सकें।

आप सफलतापूर्वक शाखा की नकल की है, तो आप master अपने मूल मुद्दे पर git reset --hard commit का उपयोग करके रीसेट कर सकते हैं जहां commit के हैश प्रतिबद्ध है कि मास्टर पर पिछले एक होना चाहिए।

---- 1 ---- 2 ---- 3 ---- 4 ---- 5 ---- 6 
       ^    ^
       original    master 
      master commit 

तो तुम 6 प्रतिबद्ध पर master की जाँच की है, और आप एक नई शाखा ticket जबकि master3 को रीसेट करने कि 6 की ओर इशारा करते बनाना चाहते हैं:

इसलिए उदाहरण के लिए आप इस तरह एक स्थिति है:

git branch ticket 
git reset --hard 3 
git checkout ticket 

और फिर आप ticket6 प्रतिबद्ध की ओर इशारा करते पर हैं, जबकि master अंक ।

+0

यह काम करेगा यदि आपकी नई शाखा 'मास्टर' से बाहर आती है। यदि आपको विकास की एक अलग पंक्ति पर इसकी आवश्यकता है, तो आपको [git-rebase] (http://linux.die.net/man/1/git-rebase) – che

+0

भयानक देखना होगा। धन्यवाद। "-बी" क्या है? – Ramy

+1

'गीट चेकआउट' में '-b' गिट को यह जांचने से पहले शाखा बनाने के लिए कहता है। यह मूल रूप से 'गिट शाखा नाम' और 'गिट चेकआउट नाम' के लिए एक शॉर्टकट है; जब आप किसी नई शाखा पर काम करना शुरू करना चाहते हैं तो आप आमतौर पर इसका इस्तेमाल करते हैं। – poke

5

आप प्रतिबद्ध (माना) 2 बार के बाद आप महसूस आप एक शाखा में किया जाना चाहिए था है तो बस

git branch work_branch 
git reset --hard HEAD~2 

प्रतिबद्ध वापस आप जाना चाहते हैं की संख्या के साथ 2 की जगह है। तुम अब भी इस बिंदु पर गुरु पर हो जाएगा, अगर आप काम जारी रखने की शाखा को स्थानांतरित करना चाहते हैं, बस git checkout work_branch

git rev-parse --help देखें कि आप कैसे वापस की तरह संदर्भ के साथ अपने प्रतिबद्ध पेड़ पार करने के लिए वाक्य रचना को समझना चाहते हैं HEAD~2

+0

हाय @ मार्क फिशर, "2 बार" से आपका क्या मतलब है? –

+1

@adrianmann - मेरा मतलब है कि यदि आप काम के 2 अलग-अलग बिट करते हैं, तो परिवर्तन जोड़ते हैं और उनमें से प्रत्येक को करते हैं, इसलिए आपका इतिहास स्टार्ट -> ए -> बी जैसा दिखता है, जहां ए और बी 2 काम करते हैं। –

+0

बहुत बढ़िया है, धन्यवाद लाखों। –

0

आप होना चाहिए जहां से एक नई शाखा बनाएँ, और उसके बाद चेरी नई शाखा में गलत शाखा पर परिवर्तन लेने।

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

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