git - रिमोट मास्टर को स्थानीय शाखा में कैसे विलय करें




branch pull (3)

अपनी स्थानीय शाखा में स्विच करें

> गिट चेकआउट कॉन्फ़िगरेशन अद्यतन करें

अपनी शाखा में रिमोट मास्टर मर्ज करें

> गिट रिबेस मास्टर कॉन्फिगर अपडेट करें

यदि आपके पास कोई संघर्ष है, तो उन्हें सही करें और प्रत्येक विवादित फ़ाइल के लिए आदेश करें

> गिट जोड़ें [path_to_file / conflicted_file] (उदाहरण के लिए गिट ऐप / संपत्ति / जावास्क्रिप्ट / test.js जोड़ें)

रिबेस जारी रखें

> गिट rebase --continue

मेरे पास एक प्रोजेक्ट की स्थानीय शाखा है ("configUpdate") जिसे मैंने किसी और के प्रोजेक्ट से फोर्क किया है और मैंने इसमें बहुत सारे बदलाव किए हैं और वे अपनी स्थानीय शाखा में किए गए परिवर्तनों को मर्ज करना चाहते हैं।

मैंने कोशिश की

git pull --rebase origin configUpdate

लेकिन इसने नवीनतम बदलाव नहीं किए हैं - मैं दोनों को कैसे विलय कर सकता हूं? (बोनस अंक के लिए भी मैंने pull --rebase कमांड के साथ क्या किया?)


कैसे (मानते हैं कि आप वर्तमान में शाखा configUpdate पर हैं):

git fetch
git rebase origin/master

संक्षेप में:

  • git merge branchname म शाखा branchname से नई प्रतिबद्धता लेता है, और उन्हें वर्तमान शाखा में जोड़ता है। यदि आवश्यक हो, तो यह स्वचालित रूप से शीर्ष पर "मर्ज" प्रतिबद्धता जोड़ता है।

  • git rebase branchname म शाखा branchname से नई प्रतिबद्धता लेता है, और उन्हें आपके परिवर्तनों के तहत "नीचे" डालता है। अधिक सटीक, यह वर्तमान शाखा के इतिहास को संशोधित करता है जैसे कि यह branchname की नोक पर आधारित है, जिसमें आपने इसके ऊपर किए गए किसी भी बदलाव के साथ किया है।

  • git pull मूल रूप से git fetch; git merge origin/master के समान होता है git fetch; git merge origin/master git fetch; git merge origin/master

  • git pull --rebase मूल रूप से git fetch; git rebase origin/master के समान होता है git fetch; git rebase origin/master git fetch; git rebase origin/master

तो आप git pull --rebase बजाय git pull --rebase का उपयोग क्यों करना चाहते हैं? यहां एक साधारण उदाहरण दिया गया है:

  • आप एक नई सुविधा पर काम करना शुरू करते हैं।

  • जब तक आप अपने परिवर्तनों को धक्का देने के लिए तैयार हों, तब तक कई डेवलपर्स अन्य डेवलपर्स द्वारा धकेल दिए गए हैं।

  • यदि आप git pull (जो विलय का उपयोग करता है), तो आपके परिवर्तन स्वचालित रूप से बनाए गए विलय प्रतिबद्धता के अतिरिक्त, नई प्रतिबद्धताओं द्वारा दफन किए जाएंगे।

  • यदि आप इसके बजाय git pull --rebase हैं, तो गिट आपके मास्टर को अपस्ट्रीम के लिए आगे बढ़ाएगा, फिर शीर्ष पर अपने परिवर्तन लागू करें।


मुझे पता चला कि यह था:

$ git fetch upstream
$ git merge upstream/master




pull