एक और प्रश्न कहा git pullजाता है जैसे git fetch+ git merge।
लेकिन git pullवीएस git fetch+ के बीच अंतर क्या है git rebase?
एक और प्रश्न कहा git pullजाता है जैसे git fetch+ git merge।
लेकिन git pullवीएस git fetch+ के बीच अंतर क्या है git rebase?
जवाबों:
यह अपने प्रश्न से बहुत स्पष्ट होना चाहिए कि आप वास्तव में सिर्फ बीच अंतर के बारे में पूछ रहे हैं git mergeऔर git rebase।
तो मान लीजिए कि आप सामान्य स्थिति में हैं - आपने अपनी मास्टर शाखा में कुछ काम किया है, और आप मूल से खींचते हैं, जिसने कुछ काम भी किया है। लाने के बाद, चीजें इस तरह दिखती हैं:
- o - o - o - H - A - B - C (master)
\
P - Q - R (origin/master)
यदि आप इस बिंदु (git पुल के डिफ़ॉल्ट व्यवहार) में विलय करते हैं, तो यह मानते हुए कि कोई संघर्ष नहीं है, आप इसके साथ समाप्त होते हैं:
- o - o - o - H - A - B - C - X (master)
\ /
P - Q - R --- (origin/master)
यदि दूसरी ओर आपने उचित छूट दी है, तो आप इसे समाप्त कर देंगे:
- o - o - o - H - P - Q - R - A' - B' - C' (master)
|
(origin/master)
आपके काम के पेड़ की सामग्री दोनों मामलों में समान होनी चाहिए; आपने अभी तक एक अलग इतिहास बनाया है । रिबेस आपके इतिहास को फिर से लिखता है, जिससे यह पता चलता है कि आपने मूल नई मास्टर शाखा ( R) के शीर्ष पर जहां आपने मूल रूप से प्रतिबद्ध किया था (के बजाय H)। आपको कभी भी रिबास दृष्टिकोण का उपयोग नहीं करना चाहिए अगर किसी और ने आपकी मास्टर शाखा से पहले ही खींच लिया हो।
अंत में, ध्यान दें कि आप वास्तव git pullमें दिए गए ब्रांच के लिए सेट कर सकते हैं, ताकि विन्यास पैरामीटर branch.<name>.rebaseको सही पर सेट करके मर्ज के बजाय रिबेज का उपयोग किया जा सके। आप एकल पुल का उपयोग करके भी ऐसा कर सकते हैं git pull --rebase।
git pullदौड़ने जैसा है तो git fetchतब git merge
git pull --rebaseजैसा हैgit fetchgit rebase
git pulla git fetch+ की तरह है git merge।
"इसके डिफ़ॉल्ट मोड में, FETCH_HEAD के
git fetchबाद git पुल शॉर्टहैंड हैgit merge" अधिक सटीक रूप से, दिए गए मापदंडों के साथgit pullचलता हैgit fetchऔर फिरgit mergeप्राप्त शाखा प्रमुखों को वर्तमान शाखा में विलय करने के लिए कॉल करता है "
(रेफरी: https://git-scm.com/docs/git-pull )
'लेकिन git pullवीएस git fetch+ के बीच क्या अंतर है git rebase'
फिर से, उसी स्रोत से:
git pull --rebase
"ब्रेबेज़ के साथ, यह git मर्ज के बजाय git rebase चलाता है।"
' mergeऔर rebase' के बीच का अंतर
इसका उत्तर यहां भी दिया गया है:
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
(जिस तरह से संस्करण इतिहास दर्ज किया गया है उसे बदलने के बीच का अंतर)
git fetch + git rebaseअब से काम करने के तरीके को समझता हूं । अब से हमारे git ट्री पर कोई कम या ज्यादा संघर्ष नहीं है :)