मैं एक खुला पीआर पर एक शाखा कहा जाता है feature-b
है कि जल्द ही विलय किया जा करने के लिए main
. हालांकि, मैं इसे लिखा था समर्थन करने के लिए मेरे feature-a
शाखा है, जो चल रही है. मैं चाहता हूँ करने के लिए काम जारी रखने पर feature-a
का लाभ उठाने और काम मैं में किया था feature-b
इससे पहले कि यह किया गया है के लिए विलय कर दिया main
.
क्या है सबसे अच्छा तरीका के लिए मुझे ऐसा करने के लिए? हमारे विलीन हो जाती है के लिए main
कर रहे हैं, कुचल, तो सभी प्रतिबद्ध पर feature-b
फिर से लिखा जाएगा के रूप में एक एकल के लिए प्रतिबद्ध है जब यह विलय करने के लिए main
. इसलिए, rebasing feature-a
पर feature-b
अब परिणाम होगा भविष्य में संघर्ष दर्द जब मैं विलय feature-a
करने के लिए main
क्योंकि एक ही परिवर्तन किया गया है जाएगा में अलग करता है.
क्या है सबसे अच्छा तरीका के लिए मुझे शामिल करने के लिए किए गए परिवर्तनों में feature-b
में feature-a
शाखा whilst कम से कम भविष्य में दर्द जब मैं अंततः मर्ज feature-a
करने के लिए main
?
अद्यतन
मैं आगे चला गया और:
- रिबेस
feature-a
परfeature-b
- और अधिक परिवर्तन (केवल 1 प्रतिबद्ध करने के लिए)
feature-a
whilstfeature-b
जा रहा था की समीक्षा की - स्क्वैश-विलय कर दिया
feature-b
एक बार इसे मंजूरी दे दी थी (आगे कोई परिवर्तन आवश्यक है, तोfeature-a
पहले से ही सही है कि कोड विलय कर दिया गया था) - खींच लिया, नवीनतम
main
और रिबेसfeature-a
के शीर्ष पर यह
के रूप में डर था, git की शिकायत है कि कई फ़ाइलें हैं, "दोनों संशोधित" या "दोनों जोड़ा गया". इस अकेले के लिए किया जाएगा एक छोटे से परेशान है, लेकिन तय करने के लिए आसान. क्या बनाता है यह अविश्वसनीय रूप से भ्रामक है - खासकर यदि किसी भी समय के बीतने के पारित कर दिया गया है - मर्ज टिप्पणी में फ़ाइलें ।
हालांकि दोनों main
और feature-a
शाखाओं है सटीक एक ही कोड में सभी फ़ाइलें, मैं सुपर कष्टप्रद व्यवहार:
- के लिए "दोनों कहा," फ़ाइलें विलय, टिप्पणी के लिए जोड़ रहे हैं "सिर (वर्तमान) को बदल" और "माता-पिता के #हैश (प्रतिबद्ध संदेश)". मैं मजबूर हूँ का चयन करने के लिए एक या अन्य, यहां तक कि हालांकि वे कर रहे हैं वास्तव में एक ही!
- "के लिए दोनों संशोधित" फ़ाइलें, यह भी बदतर है । "सिर (वर्तमान) को बदल" से पता चलता है सही कोड. हालांकि, "माता-पिता के #हैश (प्रतिबद्ध संदेश)" अनुभाग से पता चलता है के आधे कोड. फिर से, यहां तक कि हालांकि दोनों शाखाओं के सभी कोड!! मैं बच्चा तुम नहीं स्वीकार करने, "आने वाली परिवर्तन" (के रूप में लेबल करके बनाम कोड) निकाल देंगे कोड है कि दोनों शाखाओं में!
अगर मैं नहीं किया था इन परिवर्तनों जल्दी उत्तराधिकार में, मैं बुरी खो दिया है और उलझन में है के बारे में क्या git मुझे दिखा रहा है. है कि वास्तव में हुआ है कई बार अतीत में, लेकिन मैं नहीं कर सकता पर एक उंगली डाल क्या गलत हो रहा था. अब है कि मैं reproduced इस और सत्यापित व्यवहार में, मैं पूरी तरह से flummoxed के रूप में क्या करने के लिए git कर रही है और कैसे लोगों के साथ काम कर रहे हैं इस परिदृश्य.
अद्यतन 2
ठीक है, मैं एक तरह से देखने के लिए क्यों यह हो रहा था दूर करने के लिए कोड अब. यह है क्योंकि परिवर्तन में feature-b
गया में कई प्रतिबद्ध है, और उन प्रतिबद्ध समाप्त किया जा रहा है कुचल जब मर्ज करने के लिए main
हुई । यह कोई संदेह नहीं है के स्रोत दर्द और क्यों मैं कोशिश कर रहा हूँ बाहर आंकड़ा करने के लिए एक saner कार्यप्रवाह.