2017-03-24 11 views
5

के बाद फिर से खराब गिट संघर्ष समाधान रेज़ोल्यूशन मैं एक विलय संघर्ष फिर से बनाना चाहता हूं ताकि मैं इसे दूसरी बार सही तरीके से हल कर सकूं।पुश

उदाहरण:

  • शाखा 'ए' की जाँच की।
  • शाखा 'बी' विलय हो गया है।
  • मर्ज से हल किए गए संघर्ष (मर्ज प्रतिबद्ध बनाता है)।
  • रिमोट पर पुश करें।
  • अन्य लोग शाखा 'ए' में विलय करते हैं और रिमोट पर धक्का देते हैं।
  • ओह प्रिय मुझे एहसास हुआ है कि मेरा संघर्ष समाधान गलत था, मैं अपने बदले में उनके साथ गया, जो भी हो।
  • अब क्या?

मैं अनिवार्य रूप से संघर्ष समाधान भाग फिर से करना चाहता हूं।

मेरे पास अपने हेड को फिर से सेट करने का विकल्प नहीं है क्योंकि शाखा को पहले ही रिमोट पर धक्का दिया गया है; और इससे पहले कि मैंने महसूस किया था कि संघर्ष समाधान गलत था, अन्य लोगों ने इस पर प्रतिबद्ध होने की संभावना है।

मैं भी शाखा 'ए' पर प्रत्यक्ष सुधार करने से बचना चाहता हूं।

मैं चेरी पिकिंग से बचना चाहता हूं। मुझे पता है कि मैं एक मानक रिवर्ट कर सकता हूं और चेरी मेरे काम आदि ले सकता हूं, मैं यह नहीं करना चाहता।

तो क्या ऐसा करने का कोई शानदार तरीका है?

मैं वापस लाने में मर्ज तो प्रतिबद्ध वापस लाएं को पूर्ववत करने और पुन: शाखा 'बी' विलय वापस, की कोशिश की है लेकिन दुर्भाग्य से यह किसी भी संघर्ष दूसरी बार दौर हल करने मुझसे पूछते नहीं है, मैं सिर्फ मानक के लिए 'पहले से ही अद्यतित 'संदेश।

इसे बस रखकर, मैं अपना संघर्ष फिर से बनाना चाहता हूं ताकि मैं इसे दूसरी बार सही तरीके से हल कर सकूं।

किसी भी मदद की बहुत सराहना की जाएगी।

धन्यवाद।

+0

मैं इसे मर्ज या रिवर्ट के रूप में करने की कोशिश करना चाहता हूं और मरम्मत के साथ शाखा ए को प्रत्यक्ष प्रतिबद्धता देता हूं। – Schwern

उत्तर

6

यहां दो कदम हैं। सबसे पहले विलय और संघर्ष को पुनर्जीवित कर रहा है। दूसरा यह शाखा की नई नोक पर लागू कर रहा है।

आपके पास ऐसा कुछ है।

1 - 2 - 5 - 6 - 7 - 9 - 10 [A] 
    \  /
     3 - 4 - 8 

7 मर्ज के लिए प्रतिबद्ध है और आप उस फिर से करना और ए रिबेसिंग के शीर्ष पर फिक्स लागू गंदा हो सकती है क्योंकि बहुत ज्यादा काम शीर्ष पर ढेर कर दिया गया है करना चाहते हैं।

सबसे पहले, विलय विवाद को फिर से बनाएं। ऐसा करने के लिए हम इसे फिर से करेंगे। चेकआउट 6, कि जहां एक जब आप विलय कर दिया गया था, और 8.

git checkout 6 
git merge 8 

के साथ मर्ज आप git log --graph उपयोग करने के लिए निर्धारित करने के लिए वास्तविक आईडी प्रतिबद्ध होगा है। अब हमारे पास विलय संघर्ष है।इसे पर हल करें, लेकिन इसे पर प्रतिबद्ध न करें। इसके बजाय, इसे छेड़ो। git stash save। यह "the stash" नामक कोने में भिन्नता को बचाएगा। पैच को बचाने का यह एक और औपचारिक तरीका है।

अब हमें संघर्ष समाधान मिला है जैसा कि हुआ होगा, चेकआउट ए और स्टैश से फिक्स लागू करें।

git checkout A 
git stash pop 

चूंकि ए में परिवर्तन हुए हैं, इसलिए आपको इससे नए संघर्ष मिल सकते हैं। कोई बात नहीं। उन्हें सामान्य रूप से हल करें और प्रतिबद्ध करें।

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