मेरे पास .git
repo in foo / bar
और foo / baz
। परियोजनाओं को अलग-अलग परियोजनाओं के रूप में शुरू किया गया था लेकिन बाद में समान हो गया।
अब मैं दो मौजूदा रिपो को मूल निर्देशिका foo
में कॉपी करना चाहता हूं। मैं सबट्री, फिल्टर, मर्जिंग, चलती आदि पर पढ़ रहा हूं, लेकिन मुझे नहीं पता कि क्या करना सही है।
मुझे लग रहा है कि मैं एक नया बनाऊंगा
। मौजूदा रेपो में से कोई भी शाखाएं नहीं है। foo / bar>
और foo / baz
दोनों में से में
foo
यदि यह सही है, तो मैं इसे करने के बारे में कैसे जाना है?
मैं foo / bar
और foo / baz
इतिहास को हटाना नहीं चाहता। मैं सिर्फ उन इतिहास को नए माता-पिता के रिपो में कॉपी करना चाहता हूं और foo
पर काम करना जारी रखता हूं। इसके बावजूद कोई संघर्ष नहीं है या नहीं, वे हल कर सकते हैं (काफी अनायास हालांकि कोई सामान्य पूर्वजों के साथ, लेकिन फिर भी)।
इसलिए, बार
और baz
में दोनों शाखाओं को मास्टर
कहा जाता है, हम करते हैं:
$ cd / path / to / foo $ git init $ git रिमोट बार बार जोड़ें $ git रिमोट जोड़ें baz baz $ git fetch bar मास्टर: बार $ git fetch baz master: baz
इस बिंदु पर आपके पास रिक्त शाखा मास्टर
, एक शाखा बार
के साथ एक नया foo
रिपॉजिटरी है foo / bar
से रिपॉजिटरी और एक शाखा baz
से foo / baz
रिपॉजिटरी से सामग्री के साथ।
$ Git मर्ज बार $ git मर्ज बज़
इस बिंदु पर, आप मर्ज टकराव प्राप्त कर सकते हैं यदि समान नाम वाली कोई भी ऐसी फाइल है जिसमें अलग सामग्री थी उदाहरण आउटपुट:
कुछ फ़ाइल को स्वतः विलीन करना CONFLICT (जोड़ें / जोड़ें): कुछ फाइल में विलय मर्ज करें स्वत: मर्ज विफल; संघर्षों को ठीक करें और फिर परिणाम दें।
इस बिंदु पर somefile.txt में दोनों संस्करणों की सामग्री शामिल होगी। संघर्ष को सामान्य रूप से हल करें और मर्ज करने के लिए
$ git commit
करें।
परिणामस्वरूप अब आपके पास एक बार
और बाज़
दोनों के इतिहास के साथ शाखा में मास्टर
शाखा में शामिल हो गए हैं जो आपने अभी बनाया है। आपके पास अब भी बार
और baz
और रिमोश बार
और baz
के पास शाखाएं हैं। यदि आप चाहें तो उनमें से छुटकारा पा सकते हैं।
No comments:
Post a Comment