इसका अस्तित्व क्यों नहीं है?
जबकि मैं " एक और की तरह एक शाखा बनाने के लिए " git कमांड में उल्लेख करता हूं कि कैसे अनुकरण करना है git merge -s theirs, ध्यान दें कि Git 2.15 (Q4 2017) अब स्पष्ट है:
-X<option>मर्ज के लिए ' ' के लिए प्रलेखन भ्रामक रूप से यह सुझाव देने के लिए लिखा गया था कि " -s theirs" मौजूद है, जो मामला नहीं है।
देखें c25d98b प्रतिबद्ध द्वारा (25 सितं, 2017) Junio सी Hamano ( gitster) ।
(द्वारा विलय Junio सी Hamano - gitster- में प्रतिबद्ध 4da3e23 , 28 सितं, 2017)
मर्ज-रणनीतियाँ: " -s theirs" मौजूद होने से बचने से बचें
-Xoursमर्ज विकल्प के विवरण में एक अभिभावक नोट है जो पाठकों को बताता है कि यह बहुत अलग है -s ours, जो सही है, लेकिन इसका वर्णन -Xtheirsइस प्रकार है कि यह लापरवाही से कहता है "यह विपरीत है ours", यह गलत धारणा देता है कि पाठकों को भी इसकी आवश्यकता है चेतावनी दी जानी चाहिए कि यह बहुत अलग है -s theirs, जो वास्तव में मौजूद नहीं है।
-Xtheirsएक रणनीति विकल्प है जो पुनरावर्ती रणनीति पर लागू होता है। इसका मतलब यह है कि पुनरावर्ती रणनीति अभी भी कुछ भी विलय कर सकती है, और theirsसंघर्षों के मामले में केवल " " तर्क पर वापस आ जाएगी ।
theirsमर्ज की रणनीति के बारे में बहस या नहीं, इस सेप्ट 2017 के धागे में हाल ही में वापस लाया गया था ।
यह पुराने (2008) धागे को स्वीकार करता है
संक्षेप में, पिछली चर्चा को "हम नहीं चाहते ' -s theirs' के रूप में संक्षेपित किया जा सकता है क्योंकि यह गलत वर्कफ़्लो को प्रोत्साहित करता है"।
यह उपनाम का उल्लेख करता है:
mtheirs = !sh -c 'git merge -s ours --no-commit $1 && git read-tree -m -u $1' -
यारोस्लाव हैलेंको उस रणनीति के लिए एक बार फिर से पैरवी करने की कोशिश करता है, लेकिन जूनियो सी। हैमनो कहते हैं :
हमारा और उनका समरूप नहीं होने का कारण यह है कि आप हैं और आप नहीं हैं --- हमारे इतिहास और उनके इतिहास का नियंत्रण और स्वामित्व सममित नहीं है।
एक बार जब आप तय कर लेते हैं कि उनका इतिहास मेनलाइन है, तो आप विकास की अपनी रेखा को साइड ब्रांच मानकर उस दिशा में एक मर्ज करना चाहेंगे, अर्थात परिणामी मर्ज का पहला अभिभावक अपने इतिहास और दूसरे पर कमिटमेंट करता है। माता-पिता आपके इतिहास का अंतिम बुरा है। तो आप checkout their-history && merge -s ours your-historyपहले-पितृत्व को समझदार बनाए रखने के लिए " " का उपयोग करेंगे ।
और उस बिंदु पर, " -s ours" का उपयोग अब " -s theirs" की कमी के लिए एक समाधान नहीं है ।
यह वांछित शब्दार्थों का एक उचित हिस्सा है, अर्थात् जीवित विहित इतिहास रेखा के दृष्टिकोण से, आप यह संरक्षित करना चाहते हैं कि इसने क्या किया, यह बताकर कि इतिहास की दूसरी पंक्ति ने क्या किया ।
जूनियो कहते हैं, माइक बीटन द्वारा टिप्पणी के रूप में :
git merge -s ours <their-ref>प्रभावी रूप से कहते हैं ' <their-ref>स्थायी रूप से नजरअंदाज किए जाने के रूप में अपनी शाखा पर किए गए निशान शुरू होते हैं ';
और यह इसलिए मायने रखता है, क्योंकि यदि आप बाद में उनकी शाखा के बाद के राज्यों से विलय कर देते हैं, तो बाद में उनके द्वारा किए गए परिवर्तनों को अनदेखा किए बिना लाया जाएगा ।