2012-10-11 17 views
28

मैं गेरिट संस्करण 2.4.2 का उपयोग कर रहा हूं। मेरे पास master शाखा है और मैंने newbranch नामक एक नई शाखा बनाई है। तब मैंने रिमोट (गेरिट्स) newbranch में कुछ बदलावों को धक्का दिया। गेरिट में सत्यापन करने के बाद, मैंने newbranch में परिवर्तनों को विलय कर दिया।गेरिट शाखा को अन्य जीरिट शाखा में कैसे विलय करें

नहीं, मैं विलय newbranchmaster करने, अद्यतन master (newbranch से परिवर्तन के साथ विलय) भेजने के लिए, और newbranch शाखा हटाना चाहते हैं।

मैं यह करने की कोशिश की:

git fetch 
git checkout master 
git merge newbranch 
git push origin master:refs/for/master 

लेकिन Gerrit वापस भेजता है:

! [remote rejected] master -> refs/for/master (no new changes) 

मुझे क्या करना चाहिए?

उत्तर

26

इस स्थिति को गेरिट में एक बग के रूप में रिपोर्ट किया गया है। यहाँ Gerrit's issue tracker से एक समाधान/वैकल्पिक हल है: - refs/सिर को

  1. सेना धक्का

    मेरी जानकारी के अनुसार करने के लिए

    , आप 2 विकल्प वर्तमान में है। यह सिर्फ एक तेज़ आगे है, इसलिए सिद्धांत में सब कुछ पहले से ही समीक्षा और सत्यापित किया गया है। ऐसा करने में कोई बात नहीं है, इसलिए बस उस प्रक्रिया को छोड़ दें और refs/के बजाय refs/head को दबाएं।

  2. आगे बढ़ें और विलय प्रतिबद्ध बनाएं। 'गिट मर्ज - नो-एफएफ' का प्रयोग करें - यह एक मर्ज प्रतिबद्धता बनाएगा, भले ही यह आपके फास्ट-फॉरवर्ड स्थिति में आवश्यक न हो। फिर विलय प्रतिबद्धता को सामान्य, अपलोड, सत्यापित, और विलय किया जा सकता है।

मेरी कंपनी विकल्प 2. साथ जाने के लिए मैं wontfix के रूप में इस बंद कर देंगे जाता है, लेकिन यह बेहतर तो कृपया हमें बताएं यदि आप ऐसा करने के बारे कोई सुझाव हैं।

5

यदि विलय एक तेज़-आगे विलय है, तो कोई वस्तु ऑरिट को धक्का देने के लिए मौजूद नहीं है, क्योंकि एक फास्ट-फॉरवर्ड केवल शाखा सूचक को स्थानांतरित कर रहा है।

git merge --no-ff 
:

आप तेजी से आगे से बचने के लिए एक वस्तु बनाने के लिए मर्ज के लिए मजबूर करने की जरूरत है