स्थानीय शाखा से किसी दूसरे में "कैसे" खींचें?


231

यह बहुत आसान लगता है, लेकिन मैं अभी इसका पता नहीं लगा सकता। मैंने कुछ समय पहले एक प्रायोगिक शाखा बनाई थी, और अब मैं उन सभी परिवर्तनों को खींचना चाहता हूं जो मैंने मास्टर पर किए थे। यह सब स्थानीय है। मैं स्थानीय मास्टर से स्थानीय my_branch में खींचना चाहता हूं, लेकिन मैं ऐसा नहीं कर सकता। यह काम करने के लिए प्रतीत नहीं होता है, मुझे बता रहा है कि मास्टर एक गिट रिपॉजिटरी नहीं है:

git pull master

जवाबों:


338

आपको यह बताना होगा कि वर्तमान निर्देशिका / रिपॉजिटरी से इस मामले में कहां तक ​​खींचना है:

git pull . master

लेकिन स्थानीय स्तर पर काम करते समय, आप आमतौर पर मर्ज कहते हैं (आंतरिक रूप से कॉल मर्ज खींचते हैं):

git merge master

1
मुझे पसंद है git pull . masterक्योंकि मुझे लगता है कि यह जांच करेगा कि क्या मूल से नया कुछ भी है। क्या ये सच है?
जोशियाह योडर

1
@ जोशायोडर नहीं, pull .विशेष रूप से गिट को .(यानी वर्तमान निर्देशिका / भंडार) स्थित भंडार से खींचने के लिए कहता है । origin"जो कुछ भी रिपोजिटरी स्थान में परिभाषित के लिए सिर्फ एक आशुलिपि है .git/configफ़ाइल (आमतौर पर अप स्वचालित रूप से जब एक भंडार क्लोनिंग सेट)
Knittl

1
ओह! तो git pull . masterमूल के बजाय स्थानीय भंडार से खींच लेंगे? (कोई उत्पत्ति से प्राप्त नहीं है !?) क्या इसके बाद भी कोई फायदा git pull . masterहुआ है git merge master?
योशिय्याह योडर

2
@ जोसियाहोडर हां बिल्कुल, यह मूल भंडार के बजाय स्थानीय भंडार से "खींच" करेगा। कोई भी भ्रूण नहीं किया जाता है (क्योंकि स्थानीय भंडार से सब कुछ पहले से ही यहां है!)। इसका कोई फायदा नहीं है - दोनों कमांड कमोबेश एक जैसे हैं। यदि आप फास्ट-फ़ॉरवर्ड कर रहे हैं, तो आप push . origin/branch:branchस्थानीय शाखाओं को अपडेट करने के लिए (पुल नहीं) का उपयोग कर सकते हैं , उन्हें पहले चेक किए बिना।
knittl

मैं आपकी स्तुति करता हूँ। ग्रीस्कुल की शक्ति से!
आर क्लेवेन

45

आप जो देख रहे हैं, वह विलय है।

git merge master

साथ pullआप किसी दूरस्थ रिपोजिटरी से परिवर्तन को लाने और उन्हें वर्तमान शाखा में विलय।


38

काफी पुरानी पोस्ट, लेकिन यह किसी नए व्यक्ति को मदद कर सकता है।

मैं साथ चलूंगा

git rebase master
  • बहुत क्लीनर लॉग इतिहास और कोई मर्ज नहीं है (यदि ठीक से किया गया है)
  • संघर्षों से निपटने की जरूरत है, लेकिन यह उतना मुश्किल नहीं है।

1
एक विकास टीम के लिए निश्चित रूप से कई तरीके हैं जो उनकी शाखाओं में बँटते हैं। व्यक्तिगत रूप से, मैं 8 साल से गिट का उपयोग कर रहा हूं, और क्या मुझे कभी भी रिबेट नहीं करना पड़ा। मैं हमेशा मर्ज का उपयोग करता हूं, और यह हमेशा मेरी जरूरतों को पूरा करता है। निश्चित रूप से मर्ज की तरह, रिबेज के साथ, परिदृश्य उत्पन्न हो सकते हैं जहां गिट अपने आप परिवर्तन के दो सेटों "विलय" के सही परिणाम तय नहीं कर सकते हैं। एक "क्लीनर" प्रतिबद्ध इतिहास के बारे में आपके द्वारा किए गए बिंदु के बारे में। व्यक्तिगत रूप से, मेरी प्राथमिकता सभी प्रतिबद्ध इतिहास को बनाए रखने की है, बस अगर मुझे कभी कुछ "प्रतिबद्ध पुरातत्व" करने की आवश्यकता होती है (जैसा कि अक्सर होता है!)
user3441604

-1

यदि आप किसी अन्य शाखा की तरह एक नई शाखा की तलाश कर रहे हैं जैसे स्थानीय से लेकर मास्टर तक आप इसका अनुसरण कर सकते हैं।

git commit -m "Initial Commit"
git add .
git pull --rebase git_url
git push origin master
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.