2011-01-26 10 views
7

मेरे पास दो "शाखाएं" हैं, जिनमें से दोनों एक ही कोड बेस से शुरू हुईं, लेकिन दोनों को अलग करने के बाद गिट में आयात किया गया था। पूर्व इतिहास खो गया है, और इसके अतिरिक्त दोनों शाखाओं में उनके गिट इतिहास में दर्ज व्यापक परिवर्तन हैं।गिट: मैं जटिल शाखाओं को कैसे विलय कर सकता हूं जो कुछ लापता इतिहास के साथ व्यापक रूप से अलग हो गए हैं?

प्रबंधकीय तरीके से इन दोनों शाखाओं के बीच विलय सुविधाओं और बगफिक्स को देखने के लिए एक अच्छी रणनीति क्या है?

क्या कोई ऐसा उपकरण है जो मूल आयात में मतभेदों को सार्थक प्रतिबद्धताओं में अलग करने में मेरी सहायता करेगा?

+0

जब आप कहते हैं कि पूर्व इतिहास खो गया है, तो क्या आपका मतलब है कि इन दो भंडारों/"शाखाओं" के निर्माण से पहले स्रोत की कोई मौजूदा प्रति नहीं है? – Cascabel

+0

इसके अलावा, विलय का दायरा क्या है जो आप करने की कोशिश कर रहे हैं? दोनों को दो में पुन: संयोजित करें, और सामान्य वर्कफ़्लो के साथ वहां से जाएं? अलग से जारी रखें, और चेरी-चीजें अब और फिर उठाओ? – Cascabel

+0

जेफ्रोमी, यह सही है - पूर्व स्रोत की कोई प्रति नहीं। दोनों भंडार अलग-अलग काम पर जारी रहेगा, लेकिन मैं उनमें से एक के परिवर्तनों को दूसरे में बदलना चाहूंगा (चेरी-पिक?)। – fuzzyTew

उत्तर

1

लगता है जैसे आप इतिहास रखना चाहते हैं। मैं rebase --onto--preserve-merges के साथ उस शाखा में सुविधाओं/बग को स्थानांतरित करने के लिए उपयोग करना चाहता हूं, जिसका उपयोग आप जारी रखना चाहते हैं। यदि वे किसी कारण से किसी भिन्न संरचना में बैठते हैं, तो एक नई शाखा बनाएं, फिर संरचना बनाने के लिए पेड़ ऑपरेशन के साथ filter-branch करें। फिर rebase --onto --preserve-merges जैसा कि आप पहले परिदृश्य में करेंगे।

उम्मीद है कि इससे मदद मिलती है।

+0

उत्तर के लिए धन्यवाद। मैं गिट करने के लिए थोड़ा नया हूं, इसलिए मुझे उन आदेशों और विकल्पों पर पढ़ने के लिए कुछ समय लगेगा और देखें कि वे क्या कर सकते हैं जो मुझे चाहिए। कोड फ़ाइलों के अंदर और साथ ही निर्देशिका संरचना में स्थानांतरित हो गया है। – fuzzyTew

+0

इस पर पढ़ने के लिए शुभकामनाएँ। याद रखें, यह स्नैपशॉट आधारित है! –

+2

रेपो और प्रयोग की कुछ प्रतियां बनाते हैं ताकि यह देखने के लिए कि आदेश क्या करते हैं। मैं चल रहा है कि क्या हो रहा है यह देखने के लिए नियमित रूप से गिटक चलाना और इसे नियमित रूप से रीफ्रेश करना। –