अन्य रेपो की शाखा में मर्ग रेपो को मिलाएं


120

रेपो फू और रेपो बार दिया। मैं फू के साथ बार का विलय करना चाहता हूं, लेकिन केवल एक अलग शाखा में, जिसे कहा जाता है baz

git checkout -b baz <= यहां बार रेपो डालें।

जवाबों:


230

आप एक शाखा में एक भंडार का विलय नहीं कर सकते । आप अपने स्थानीय भंडार में एक शाखा से दूसरे भंडार में एक शाखा का विलय कर सकते हैं । यह मानते हुए कि आपके पास दो रिपॉजिटरी हैं, और दोनों आपकी वर्तमान निर्देशिका में स्थित हैं:foobar

$ ls
foo bar

fooरिपॉजिटरी में बदलें :

$ cd foo

barएक दूरस्थ के रूप में भंडार जोड़ें और इसे प्राप्त करें:

$ git remote add bar ../bar
$ git remote update

आपकी वर्तमान शाखा जो भी है, उसके आधार पर भंडार bazमें एक नई शाखा बनाएँ foo:

$ git checkout -b baz

वर्तमान शाखा में भंडार somebranchसे शाखा को मिलाएं bar:

$ git merge --allow-unrelated-histories bar/somebranch

( --allow-unrelated-historiesgit संस्करण 2.9 से पहले आवश्यक नहीं है)


21
git 2.9 के बाद से आपको शायद --allow-unrelated-historiesgit मर्ज कमांड में जोड़ना होगा।
Drasill

2
@Drasill से टिप्पणी पर जानकारी: github.com/git/b/blob/master/Documentation/RelNotes/…
GaTechThomas

10
मुझे नहीं पता कि मैं क्या कर रहा हूं और मैं वास्तव में फू / बार प्लेसहोल्डर्स के साथ इसे नहीं पढ़ सकता हूं। क्या कोई इसे वास्तविक वास्तविक जीवन उदाहरणों के साथ संपादित कर सकता है (जैसे लिंक जहां उपयुक्त हो और ऐसे)?
rian333

ऊह, यह महान है। मैं इसे एक उपनिर्देशिका में मिलाना पसंद करूंगा। यह अलग नहीं हो सकता, क्या यह है? मैं उस कदम को पसंद करूंगा।
macetw

1
मुझे मर्ज संघर्ष के टन मिलते हैं। वैसे भी आप एक नई शाखा में विलय के लिए मजबूर कर सकते हैं?
खानाबदोश

41

"वास्तविक जीवन" कमांड के साथ अपडेट किया गया:

अपने रेपो डायरेक्टरी से शुरू करें, सुनिश्चित करें कि आपकी वर्किंग कॉपी साफ है (कोई फाइल नहीं बदली, जोड़ी या निकाली गई)।


एक नई शाखा बनाएं:

git checkout -b <my-branch>

द्वितीयक रिमोट जोड़ें, फिर इसे लाएँ:

git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update

अपनी वर्तमान शाखा में उनकी एक शाखा को मिलाएं:

git merge <repo-name>/<their-branch>


यदि आप नहीं जानते कि <their-branch>आप क्या चाहते हैं, तो जाएंmaster

यदि आप सुनिश्चित हैं कि आप सभी दूरस्थ परिवर्तनों को स्वीकार करना चाहते हैं और संघर्षों से बचना चाहते हैं ( आपका ओवरराइट करें ) तो आप अंतिम चरण में -X theirsविकल्प के रूप में निर्दिष्ट कर सकते हैं git merge

यदि आप इसे एक उपनिर्देशिका में जोड़ना चाहते हैं तो संभवतः आपको गिट सबमॉड्यूल का उपयोग करना चाहिए


3

लार्क्स से गाइड का उपयोग करते हुए, मैं SourceTree का उपयोग करके ऐसा करने में सक्षम था।

  1. गंतव्य भंडार में एक शाखा बनाई
  2. स्रोत रिपॉजिटरी को एक रिमोट के रूप में जोड़ा गया, सेटिंग्स बटन को दबाकर और स्रोत रिपॉजिटरी को जोड़कर।
  3. दोनों रिपॉजिटरी की शाखाएं अब शाखा सूची में दिखाई देती हैं। मैंने अपने नए गंतव्य भंडार की शाखा में स्रोत भंडार से एक शाखा को मर्ज करने के लिए मर्ज टूल का उपयोग किया।
  4. SourceTree या My IDE का उपयोग करके किसी भी टकराव को हल किया
  5. मेरी शाखा में परिवर्तन करें।
  6. सेटिंग्स सूची का उपयोग करके, दूरस्थ सूची से स्रोत रिपॉजिटरी निकालें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.