2011-11-22 14 views
218

तक मर्ज करें मैंने गिट में master शाखा से newbranch नाम की एक नई शाखा बनाई है। अब मैंने कुछ काम किया है और newbranch को master में विलय करना चाहता हूं; हालांकि, मैंने newbranch में कुछ अतिरिक्त बदलाव किए हैं और मैं newbranch को master पर चौथी-से-अंतिम प्रतिबद्धता तक विलय करना चाहता हूं।एक विशिष्ट प्रतिबद्धता

मैं cherry-pick थे, लेकिन यह सही विकल्प का उपयोग करने के लिए संदेश दिखाता है:

git checkout master  
git cherry-pick ^^^^HEAD newbranch 

मैं Git merge उपयोग कर सकते हैं बजाय यह करने के लिए?

git merge newbranch <commitid> 

उत्तर

378

ज़रूर, master तुम सब करने की जरूरत है शाखा में किया जा रहा है:

git merge <commit-id> 

जहां commit-id पिछले के हैश newbranch आप अपने master शाखा में प्राप्त करना चाहते हैं कि से प्रतिबद्ध है।

आप git help <command> कर कर किसी भी गिट कमांड के बारे में अधिक जानकारी प्राप्त कर सकते हैं। यह मामला git help merge है। और दस्तावेज़ कह रहे हैं कि merge कमांड के लिए अंतिम तर्क <commit>... है, इसलिए आप किसी भी प्रतिबद्धता या यहां तक ​​कि कई प्रतिबद्धताओं के संदर्भ में भी जा सकते हैं। हालांकि, मैंने कभी बाद में खुद नहीं किया।

+12

न केवल एक ही प्रतिबद्धता बल्कि सभी प्रतिबद्धता 'प्रतिबद्ध-आईडी' – Dau

+31

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

+0

क्या मैं प्रतिबद्ध आईडी का उपयोग कर मास्टर के अलावा दो स्थानीय शाखाओं के बीच विलय कर सकता हूं? – skt

2

स्वच्छ शाखाओं में रखने के लिए, आप ऐसा कर सकता है:

git checkout newbranch 
git branch newbranch2 
git reset --hard <commit Id> # the commit at which you want to merge 
git checkout master 
git merge newbranch 
git checkout newbranch2 

इस तरह, newbranch खत्म हो जाएगा, जहां यह मास्टर में विलय हो गया है, और आप newbranch2 पर काम जारी है।

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

  • कोई संबंधित समस्या नहीं^_^