एक ही रास्ता:पुश शाखा के बीच क्या अंतर है और मास्टर को मर्ज करें तो पुश करें?
git checkout myBranch
git push origin myBranch:master
एक और तरीका है:
git checkout master
git merge myBranch
git push
क्या इन दोनों के बीच का अंतर है?
एक ही रास्ता:पुश शाखा के बीच क्या अंतर है और मास्टर को मर्ज करें तो पुश करें?
git checkout myBranch
git push origin myBranch:master
एक और तरीका है:
git checkout master
git merge myBranch
git push
क्या इन दोनों के बीच का अंतर है?
यह:
git checkout myBranch
git push origin myBranch:master
बस (जैसे गैर-मजबूर अद्यतन) master
को myBranch
की धक्का तेजी से आगे करने के लिए प्रयास करता है। यदि master
myBranch
से पहुंच योग्य है, यानी master
में कोई भी काम नहीं है जो myBranch
भी नहीं है, तो पुश सफल होगा; अन्यथा, धक्का खारिज कर दिया जाएगा।
पिछले git checkout myBranch
git push
के लिए अप्रासंगिक है, क्योंकि आप refspec myBranch:master
का उपयोग कर रहे हैं। आप Git Internals - The Refspec पर रेफस्पेक्स के बारे में अधिक जान सकते हैं।
यह:
git checkout master
git merge myBranch
git push
वास्तव में master
में myBranch
विलीन हो जाती है, और फिर एक दूरस्थ करने के लिए यह पुश करने के लिए प्रयास करता है (एक Git रेपो की एक डिफ़ॉल्ट विन्यास के साथ, दूरस्थ मूल हो जाएगा)।
क्योंकि myBranch
वास्तव में master
में विलय कर दिया है, तो यह सोचते हैं दूरस्थ master
, स्थानीय एक के पीछे है यानी यह शामिल नहीं है करता है स्थानीय एक भी नहीं है कि, तो धक्का सफल होगा, अन्यथा यह विफल हो जाएगा ।
लेकिन ध्यान दें कि 'गिट मर्ज' अभी भी एक फास्ट-फॉरवर्ड विलय में हो सकता है। तो मास्टर, मूल/मास्टर और MyBranch – knittl
@knittl के बीच संबंधों के आधार पर अंतिम परिणाम एक जैसा हो सकता है या नहीं भी हो सकता है, मुझे पता है कि 'गिट मर्ज मेरा ब्रंच' तेजी से आगे हो सकता है। हालांकि मैं इसे ऊपर नहीं लाया, क्योंकि (1) कहता है कि यह एक तेज़ आगे है। फिर 'गिट पुश मायब्रैंच: मास्टर' और 'गिट पुश मूल' वही हैं। लेकिन फिर (2), मान लीजिए कि 'गिट मर्ज मेरी ब्रंच' तेजी से आगे नहीं है। इस बिंदु पर, यदि उपयोगकर्ता 'गिट पुश मूल मायब्रैंच: मास्टर' करता है, तो यह वही अपडेट है जो 'गिट पुश मूल' से होगा: रिमोट शाखा दोनों तेजी से आगे। तो यह अभी भी वही है। –
@ कूपकेक तो मूल रूप से, कोई फर्क नहीं पड़ता है या नहीं, मेरे दो तरीकों का परिणाम वही है? – Magicloud
एक और महत्वपूर्ण सवाल: *** आप क्या करने की कोशिश कर रहे हैं, और क्यों? *** –
मैं बस अपने परिवर्तन दूरस्थ मास्टर में विलय करना चाहता हूं। लेकिन मुझे नहीं पता कि रिमोट मास्टर में कुछ नए काम लिखने पर मुझे कोई जोखिम है या नहीं। – Magicloud
'गिट पुश मूल मायब्रैंच: मास्टर' के मामले में, यह केवल तेज़-आगे है, जब तक आप '+ mybranch: master' जैसे refspec में प्लस '+' नहीं जोड़ते हैं, जो तब मजबूर अपडेट की अनुमति देता है। इसी प्रकार, 'गिट पुश' फास्ट-फॉरवर्ड, केवल गैर-मजबूर अद्यतन है, बस फोर्स फ्लैग '-एफ' पास न करें। –