किसी अन्य शाखा से परिवर्तन कैसे प्राप्त करें


99

मैं वर्तमान में featurexशाखा पर काम कर रहा हूं । हमारी मास्टर ब्रांच का नाम ब्रांच है our-team। जब से मैंने काम करना शुरू किया है featurex, शाखा में और बदलाव किए गए हैं our-team। इससे पहले कि मैं featurexविलय के लिए धक्का दूं, मैं स्थानीय रूप से our-teamशाखा से सभी परिवर्तन प्राप्त करना चाहूंगा featurexताकि मैं उम्मीद के मुताबिक सब कुछ सुनिश्चित कर सकूं।

मैंने यह स्थानीय स्तर पर सभी नवीनतम परिवर्तनों से प्राप्त करने के लिए किया है our-team

git checkout our-team
git pull

मैं उसे कैसे कर सकता हूँ?


9
आपने प्रश्न बहुत जानबूझकर और ठीक ढंग से पूछा। इससे उत्तर के साथ-साथ नॉब्स (जैसे खुद को) समझने में आसानी होती है।
douglas.kirschman

जवाबों:


57

उदाहरण के लिए, आप अपनी शाखा में होने पर रिबास का उपयोग कर सकते हैंgit rebase our-teamfeaturex

यह आपकी our-teamशाखा के अंत में शाखा के प्रारंभ बिंदु को स्थानांतरित करेगा , जो आपकी featurexशाखा में सभी परिवर्तनों को मिलाएगा।


3
मैं भविष्य में इसका इस्तेमाल करूंगा, हालांकि, इस बार मैंने सिर्फ निम्नलिखित किया है..क्योंकि इसका एक ही प्रभाव है? git checkout our-team git pull git checkout featurex git merge our-team
एंथनी

5
मैं तनाव में आना चाहता हूं: यदि आप ऐसा करते हैं और आपके पासour-team स्थानीय रूप से बदलाव नहीं हैं, तो आपको git fetch && git rebase origin/our-teamइसके बजाय चलाने की आवश्यकता होगी । आपकी आज्ञा मानती है कि रिपॉजिटरी को पहले अपडेट कर दिया गया है।
मकोतो

108
  1. मास्टर शाखा में जाएं our-team

    • git चेकआउट हमारी टीम
  2. our-teamशाखा से सभी नए परिवर्तनों को खींचें

    • पकड़ खींचो
  3. अपनी शाखा में जाओ featurex

    • गिट चेकआउट featurex
  4. our-teamशाखा में featurexशाखा के परिवर्तन को मर्ज करें

    • git मर्ज our-team
    • या यदि आप विशिष्ट कमेंट्स को मर्ज करना चाहते हैं तो चेरी-पिक करें{commit-hash}
  5. our-teamशाखा के परिवर्तनों के साथ अपने परिवर्तनों को धकेलें

    • जोर का धक्का

नोट : शायद आपको धक्का देने से पहले our-teamशाखा को featurexशाखा में विलय करने के बाद संघर्ष को ठीक करना होगा


जीट पुल कहां से आएगा?
चिया योंगकांग

30
git fetch origin our-team

या

git pull origin our-team

लेकिन पहले आपको यह सुनिश्चित करना चाहिए कि आप उस शाखा पर पहले से ही जिसे आप अपडेट करना चाहते हैं (फीचरएक्स)।


8

आप लगभग वहाँ हैं :)

जो कुछ बचा है, वह है

git checkout featurex
git merge our-team

यह हमारी टीम को फीचरएक्स में विलय कर देगा।

उपरोक्त मान लें कि आपने पहले से ही फीचरएक्स में अपने बदलावों को कम कर दिया है / रोक दिया है, अगर ऐसा नहीं है तो आपको पहले ऐसा करने की आवश्यकता होगी।


6

Google पर इस पोस्ट पर आने वाले अन्य लोगों के लिए। 2 विकल्प हैं, जो या तो विलय या आपकी शाखा को रिबास कर रहे हैं । दोनों अलग तरह से काम करते हैं, लेकिन इसके परिणाम समान हैं।

स्वीकार किए जाते हैं जवाब एक है रिबेस । यह किए गए सभी कमिट्स को ले जाएगा our-team और फिर किए गए कमिट्स को लागू करेगा featurex, जिससे आप आवश्यकतानुसार उन्हें विलय कर सकेंगे ।

रिबासिंग का एक छोटा सा कारण यह है कि आप अपनी शाखा के इतिहास को खो देते हैं या फिर से लिखते हैं, अनिवार्य रूप से यह बताते हुए कि आपकी शाखा 123abc पर नहीं बल्कि 456cde पर शुरू हुई है। यह शाखा पर काम करने वाले अन्य लोगों के लिए समस्या पैदा करेगा , और कुछ दूरस्थ उपकरण इसके बारे में शिकायत करेंगे। यदि आप इस बारे में निश्चित हैं कि आप क्या कर रहे हैं, तो यह --forceध्वज के लिए है।

क्या अन्य पोस्टर सुझाव दे रहे हैं एक है मर्ज । यह featurexशाखा लेगा , जिसके पास जो भी राज्य है और इसे वर्तमान स्थिति के साथ विलय करने का प्रयास करता है our-team, जिससे आपको धक्का देने से पहले एक, बड़ा, मर्ज कमिट करने और सभी मर्ज त्रुटियों को ठीक करने के लिए प्रेरित किया जाता है our-team। अंतर यह है कि आप अपने featurexकमिट्स को नए कमिट्स से पहले लागू कर रहे हैं our-teamऔर फिर मतभेदों को ठीक कर रहे हैं। आप इतिहास को फिर से लिखना नहीं चाहते हैं, बल्कि जो पहले आए थे, उन्हें फिर से लिखने के बजाय उसमें एक प्रतिबद्धता जोड़ दें।

दोनों विकल्प मान्य हैं और अग्रानुक्रम में काम कर सकते हैं। आमतौर पर (इसका मतलब है कि मेरा मतलब है, यदि आप एक सुविधा शाखा के लिए व्यापक उपकरण और कार्यप्रणाली जैसे कि गिट-फ्लो ) का उपयोग कर रहे हैं, तो इसे मुख्य शाखा में विलय करना है, अक्सर एक मर्ज-अनुरोध के माध्यम से जाना, और सभी संघर्षों को हल करना जो एक (या एकाधिक) मर्ज में उत्पन्न होता है।

रिबासिंग एक दिलचस्प विकल्प है, जो आपको मर्ज से गुजरने से पहले अपनी शाखा को ठीक करने में मदद कर सकता है, और एक बड़ा मर्ज कमिट करने के दर्द को कम कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.