मैं गिट में एक noob हूँ, और git pullबनाम के बीच अंतर जानने की कोशिश कर रहा हूं git rebase। क्या कोई उदाहरण प्रदान कर सकता है कि किस विकल्प का उपयोग किया जाए क्योंकि मुझे लगता है कि दोनों एक ही उद्देश्य से काम करते हैं।
मैं गिट में एक noob हूँ, और git pullबनाम के बीच अंतर जानने की कोशिश कर रहा हूं git rebase। क्या कोई उदाहरण प्रदान कर सकता है कि किस विकल्प का उपयोग किया जाए क्योंकि मुझे लगता है कि दोनों एक ही उद्देश्य से काम करते हैं।
जवाबों:
git pullऔर git rebaseविनिमेय नहीं हैं, लेकिन वे निकटता से जुड़े हुए हैं।
git pullवर्तमान शाखा के नवीनतम परिवर्तनों को दूरस्थ से प्राप्त करता है और उन परिवर्तनों को शाखा की आपकी स्थानीय प्रति पर लागू करता है। आम तौर पर यह विलय द्वारा किया जाता है, अर्थात स्थानीय परिवर्तनों को दूरस्थ परिवर्तनों में मिला दिया जाता है। तो git pullके समान है git fetch & git merge।
रिबासिंग विलय का एक विकल्प है। दो शाखाओं को मिलाने वाली एक नई कमेटी बनाने के बजाय, यह एक शाखा के कमिट को दूसरे के ऊपर ले जाती है।
आप मर्ज ( git pull --rebase) के बजाय रिबेट का उपयोग करके खींच सकते हैं । आपके द्वारा किए गए स्थानीय परिवर्तनों को दूरस्थ परिवर्तनों के साथ मर्ज किए जाने के बजाय दूरस्थ परिवर्तनों के शीर्ष पर पुन: किया जाएगा।
एटलसियन का विलय बनाम रिबासिंग पर कुछ उत्कृष्ट दस्तावेज हैं ।
git-pull - एक और रिपॉजिटरी या एक स्थानीय शाखा GIT PULL से प्राप्त और एकीकृत करें
मूल रूप से आप अपने स्थानीय, उदाहरण के लिए दूरस्थ शाखा खींच रहे हैं:
git pull origin master
अपने स्थानीय भंडार में मास्टर शाखा खींचेंगे
git-rebase - फॉरवर्ड-पोर्ट लोकल अपडेटेड अपस्ट्रीम हेड GIT REBASE पर जाती है
यह आपके स्थानीय परिवर्तनों को अन्य उपयोगकर्ताओं द्वारा दूरस्थ रूप से किए गए परिवर्तनों के ऊपर रख रहा है। उदाहरण के लिए:
SOME-FEATUREअब आप उसकी और आपकी परिवर्तन को अपनी स्थानीय शाखा में देखना चाहते हैं। तो फिर आप चेकआउट masterशाखा:
git checkout master
तो आप खींच सकते हैं:
git pull origin master
और फिर आप अपनी शाखा में जाते हैं:
git checkout SOME-FEATURE
और आप इससे अंतिम masterपरिवर्तन प्राप्त करने के लिए और अपनी शाखा को शीर्ष पर रखने के लिए रिबेस कर सकते हैं :
git rebase master
मुझे उम्मीद है कि अब यह आपके लिए थोड़ा और स्पष्ट है।
git fetchतब git rebase origin/master।
संक्षेप में :
-> गेट मर्ज: यह बस आपके और दूरस्थ परिवर्तनों को मर्ज करेगा, और यह एक और प्रतिबद्ध इतिहास रिकॉर्ड बनाएगा
-> Git Rebase: यह आपके परिवर्तनों को सभी नए दूरस्थ परिवर्तनों से ऊपर रखेगा, और इतिहास को फिर से लिखेगा, इसलिए आपका प्रतिबद्ध इतिहास git मर्ज की तुलना में बहुत अधिक क्लीनर होगा। रीबेस एक विनाशकारी ऑपरेशन है। इसका मतलब है, यदि आप इसे सही तरीके से लागू नहीं करते हैं, तो आप प्रतिबद्ध काम खो सकते हैं और / या अन्य डेवलपर के रिपॉजिटरी की निरंतरता को तोड़ सकते हैं।