Saturday 15 June 2013

Copy 2 Git Repo Histories To New Parent Directory (I Think) -


मेरे पास .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