2011-03-25 20 views
8

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

हालांकि, मेरे पास पहले से ही कुछ अन्य कार्यक्षमताओं के लिए एक शाखा है जिसमें कुछ इंटरफ़ेस परिवर्धन भी शामिल हैं।

क्या मैं उन शाखाओं को मास्टर करने के लिए मास्टर कर सकता हूं जब मैं उनके साथ समाप्त करूं? क्या कुछ अच्छा अभ्यास है, संभवतः, xib-files को एक निश्चित तरीके से ढांचा बनाना जिससे बाद में विलय करना आसान हो जाए?

उत्तर

6

क्या होगा यदि उदाहरण के लिए, एक शाखा में तीन टैब के साथ एक टैब दृश्य है, और दूसरे टैब में तीन टैब के साथ एक टैब दृश्य है, और दो टैब समान हैं, और कोई नहीं है मैं, मर्ज

आप सबसे अधिक संभावना a conflict होगा के बाद एक चार टैब्ड टैब दृश्य प्राप्त करता है, तो संशोधित लाइनों (टैब परिभाषाओं में शामिल) ही हैं।
आपके पास केवल 4 टैब होंगे, मैन्युअल विलय समाधान के दौरान, आप गलती से एक अतिरिक्त टैब परिभाषा छोड़ देते हैं।

विलय समाधान पर एक महान आलेख के लिए Painless Merge Conflict Resolution in Git देखें।

3-way merge


कहा जा रहा है, विशेष रूप से xibs के बारे में, अपनी प्रस्तुति अच्छा लगता है:

इंटरफ़ेस बिल्डर संस्करण 3, एक नया फ़ाइल स्वरूप (विस्तार .xib के साथ) के रूप में है जोड़ा गया है, जो कार्यात्मक रूप से .nib के समान है, सिवाय इसे एक फ्लैट फ़ाइल में संग्रहीत किया जाता है, जिससे इसे संशोधन नियंत्रण प्रणाली और प्रोसेस में भंडारण के लिए अधिक उपयुक्त बना दिया जाता है। diff जैसे उपकरण द्वारा गाते हैं।

कैसे Git सक्षम XIBs में परिवर्तन मर्ज करने के लिए है:

लेकिन this thread वास्तविक भावना का सारांश दिया?
एक एक्सआईबी की संरचना रैखिक नहीं है; इस बात की कोई गारंटी नहीं है कि आप केवल एक एक्सआईबी के हिस्सों को स्वैप कर सकते हैं और एक प्रयोग योग्य XIB के साथ हवादार हो सकते हैं।
जब तक गिट को ऐप्पल के पास एक्सआईबी की समझ नहीं है, तो मुझे नहीं लगता कि विलय काम करने की गारंटी कैसे हो सकता है।

है कि आप अतिरिक्त कदम के साथ छोड़ जाएगा, विवाद की स्थिति में अपने मर्ज संकल्प जोड़ने से पहले, अपने XCode4 संपादक में संशोधित .xib फ़ाइल को खोलने और देखें कि क्या सब कुछ अभी भी अच्छा लग रहा है के लिए।

XCode4 xib file Editor

एक बार है कि दृश्य की जांच किया जाता है, record the merge resolution through rerere, और आप भविष्य में have potentially automatic resolution होगा।

+0

धन्यवाद। हां, मुझे गिट में संघर्ष रिज़ॉल्यूशन के बारे में पता है, और यह सवाल गिट के बारे में इतना नहीं है, लेकिन * xibs * के बारे में गिट में (xibs मैक ओएस एक्स अनुप्रयोगों के लिए इंटरफेस हैं, जो विज़ुअल एडिटर इंटरफेस बिल्डर में बनाए गए हैं, वे लगभग हैं पढ़ने के लिए असंभव)। – Ibolit

+0

@ इबोलिट: मैं समझता हूं। ऐसा लगता है कि विलय रिज़ॉल्यूशन परिणाम को 'गिट रीर्रे' के साथ रिकॉर्ड करने से पहले, आपको दृश्य जांच के अतिरिक्त चरण के साथ ही छोड़ना है। मेरे अद्यतन उत्तर में अधिक। – VonC

+0

बहुत बहुत धन्यवाद। मैं इसे एक कोशिश :) – Ibolit

0

बेशक आप उन्हें दोनों मास्टर में विलय करने में सक्षम होंगे। इससे कोई फर्क नहीं पड़ता कि आप अपनी फाइलों को कैसे बनाते हैं, गिट को इसकी परवाह नहीं है।

+3

यह एक अति सरलीकरण है: ओपी के बारे में दो शाखाएं जो एक ही बात करने के लिए संशोधन करने, इंटरफ़ेस पूछ रहा है। वे संभावित रूप से संघर्ष विलय का कारण बन सकते हैं। सुलझाने वाले, हाँ, लेकिन कुछ पता होना चाहिए। – Cascabel

+4

बात यह है कि जब मैं अन्य फ़ाइलों में संघर्ष हल करता हूं, तो मैं समझता हूं कि मैं क्या कर रहा हूं, मुझे पता है कि विशेष लाइनों का क्या अर्थ है। इस मामले में मैं केवल कुछ एक्सएमएल देखूंगा जिसका मतलब मेरे लिए कुछ भी नहीं होगा। अगर मैं विलय करते समय गलती करता हूं, तो मुझे थोड़ा सा मौका मिल जाएगा। दोबारा, अगर मैं, उदाहरण के लिए, एक शाखा में तीन टैब के साथ एक टैब दृश्य, और दूसरे टैब में तीन टैब के साथ एक टैब दृश्य है, और दो टैब समान हैं, और कोई नहीं है, क्या मुझे चार मिलेंगे विलय के बाद टैब टैब देखा? – Ibolit

संबंधित मुद्दे