2016-07-15 10 views
5

मुझे शायद कुछ सही नहीं मिल रहा है, लेकिन क्या कोई मुझे बता सकता है कि git rebase विवादों में क्यों परिणाम देता है, जबकि git merge (समान शाखा) नहीं है?गिट: विलय के दौरान विवादों में रिबेस का परिणाम क्यों होता है?

जहां तक ​​मुझे पता है कि git rebase मेरी वर्तमान शाखा में किए गए कामों से पहले दूसरी शाखा से काम करता है, जबकि git merge वही काम करता है और उन्हें मेरी शाखा में पैच के रूप में लागू करता है, है ना? diff तो वही नहीं है, हालांकि शायद उलट दिया गया है? यकीन नहीं है कि दूसरी शाखा के साथ मेरी शाखा क्यों पैच करना कोई समस्या नहीं है, जबकि दूसरी शाखा को मेरी प्रतिबद्धता के साथ पैच करना है।

उत्तर

3

एक रिबेस के दौरान, आप किसी अन्य शाखा के सभी कामों को किसी अन्य के ऊपर लागू करते हैं। यह संभव है कि उनमें से एक में एक संघर्ष होता है जिसे आपने बाद में प्रतिबद्धता में हल किया है। इसलिए, मर्ज ऑपरेशन में कोई संघर्ष नहीं होता है जबकि रिबेसेज मध्यवर्ती संघर्षों का कारण बनता है।

यह भी देखें git rerere जो आपको स्वचालित रूप से सुलझाने वाले संघर्षों को स्वचालित रूप से हल करने की अनुमति देता है।

+0

मैं समझता हूं कि आप क्या कह रहे हैं, लेकिन मुझे अभी भी यह पूरी तरह से नहीं मिल रहा है। कहें मेरी शाखा ए ने ए, बी और सी किया है। फिर मैं शाखा डी और ई के साथ शाखा बी बनाते हैं। Commit f शाखा ए पर बनाया गया है ** ** रीबेस ** (शाखा बी पर होने पर) परिणामस्वरूप: ए, बी, सी, एफ, डी, ई; ** मर्ज ** परिणामस्वरूप होगा: ए, बी, सी, डी, ई, एफ। अब पृथ्वी पर प्रतिबद्धता सी के साथ एक विलय संघर्ष कैसे कर सकता है अगर यह पहली जगह में शाखा ए पर प्रतिबद्ध सी के शीर्ष पर बनाया गया था? – minitauros

+0

@minitauros (1) एक विलय के परिणामस्वरूप दो शाखाएं शामिल हो जाएंगी: एक, बी, सी, एफ और एक के साथ एक, बी, सी, डी, ई, एक रैखिक इतिहास नहीं। (2) शाखा ए पर किए गए एफ को प्रतिबद्ध करते हैं, कोई संघर्ष नहीं करते हैं, तो मैं नहीं देख सकता कि यह पुन: प्रयास करते समय संघर्ष कैसे शुरू कर सकता है (यदि आपके पास अधिक विस्तृत उदाहरण है, तो यह बहुत अच्छा होगा)। (3) लेकिन यदि एफ और ई के साथ डी संघर्ष उस संघर्ष को हल करता है, तो एक विद्रोह संघर्ष को फिर से चलाएगा जबकि एक विलय नहीं होगा। – coredump

+1

ठीक है, तो स्पष्टीकरण के लिए धन्यवाद! इसे थोड़ा सा साफ़ करता है। दुर्भाग्यवश मेरे पास उदाहरण मौजूद नहीं है (जैसा कि मैंने इसे ठीक किया है), लेकिन यदि मैं इसे फिर से चलाता हूं और यदि एक ही प्रश्न उठता है, तो मैं इस पोस्ट को अधिक जानकारी के साथ अपडेट करूंगा :)। अभी के लिए मुझे लगता है कि यह जवाब काफी अच्छा है, धन्यवाद! – minitauros

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