2010-05-07 14 views
13

मेरे पास एक रेपो है जहां 'मास्टर' एक निश्चित दिशा में जा रहा है, और दूसरी शाखा 'फू' कुछ कामों के लिए भिन्न होने जा रही है, उसके बाद उसके बाद के सभी परिवर्तनों को 'मास्टर' पर ट्रैक करें। यह सब निश्चित रूप से पसंद है।सबवर्जन में विलय के लिए केवल-रिकॉर्ड है, मैं गिट में ऐसा कैसे कर सकता हूं?

सबवर्सन में आप चीजों को चिह्नित करने के लिए केवल एक विलय-विलय कर सकते हैं क्योंकि "विलय हुआ है" भले ही कोई वास्तविक परिवर्तन नहीं किया गया हो। यानी यह लक्ष्य शाखा में निर्देशिकाओं से जुड़ी संपत्तियों में विलय-ट्रैकिंग संख्याओं को बदलता है।

मैं के साथ एक खेल ..

Git विलय --no-प्रतिबद्ध मास्टर पड़ा है

कुछ मैं के साथ इससे पहले कि मैं प्रतिबद्ध है टिंकर करने के लिए सक्षम हो सकता है के रूप में

.., लेकिन यह प्रश्न में परिवर्तन के हिस्से के लिए लक्षित शाखा की गड़बड़ी का नरक बना रहा है (हटाए जाने के बाद नाम बदलें)।

एक आसान तरीका होना चाहिए ..?

  • पॉल

उत्तर

12

यह आपके लिए क्या देख रहे हैं?

git merge --strategy=ours master 

हमारा

यह सिर के किसी भी संख्या का समाधान करता है, लेकिन मर्ज की जिसके परिणामस्वरूप पेड़, हमेशा कि वर्तमान शाखा सिर के है प्रभावी रूप से अन्य सभी शाखाओं से सभी परिवर्तनों अनदेखी। इसका मतलब साइड शाखाओं के पुराने विकास इतिहास को पीछे छोड़ने के लिए किया जाता है।

ऐसा लगता है कि आप जो पूछ रहे हैं - यह एक विलय प्रतिबद्ध बनाता है जो वास्तव में किसी भी बदलाव को पेश नहीं करता है।

लेकिन क्या आप वास्तव में ऐसा करना चाहते हैं? क्या कोई कारण है कि आप शाखाओं को वास्तव में अलग नहीं कर सकते हैं (विलय होने के बिना) तो बाद में विलय करें?

+2

पीएस मैं कसम खाता हूं कि यह तीसरी बार मैंने पिछले सप्ताह में '--strategy = ours' का उल्लेख किया है। मुझे आश्चर्य है कि क्यों हर किसी को अचानक इतिहास को फेंकने की जरूरत है ... – Cascabel

+0

मैं शाखा बिंदु के ठीक बाद, शाखा पर डेटाबेस कॉन्फ़िगरेशन फ़ाइल बदल रहा हूं, और इसे वापस मास्टर में विलय नहीं करना चाहता हूं। बाद में शाखा पर बग फिक्स, मैं मास्टर को वापस विलय करना चाहता हूं। इससे यह अनुमति मिल जाएगी, फिक्स चुनने के बिना व्यक्तिगत रूप से काम करता है। –

+0

उपर्युक्त करते समय, यह मेरे लिए हुआ कि यह डेटाबेस जानकारी वास्तव में पर्यावरण चर में है, जैसा कि बारह-फैक्टर ऐप में है। –

0

पॉल, गिट का नाम बदलकर इसके बाद (svn के सापेक्ष) आसानी से हटा दिया जाता है। यह सामग्री को फ़ाइल नाम नहीं ट्रैक करता है। Svn में यह दर्दनाक होगा, यह करने के दौरान गिट के साथ आप क्या समस्याएं अनुभव कर रहे हैं?

0

jefromi ने इसे खींचा। यहां असली चीज़ है - http://github.com/jbehave/jbehave-core/blob/master/examples/trader/src/main/java/org/jbehave/examples/trader/TraderStory.java (स्विच शाखाओं के साथ खेलें और लाइन 65 देखें)।

यह 'इतिहास को फेंकने' के बारे में इतना कुछ नहीं था, लेकिन एक ही आधार से भिन्न परिवर्तनों को जोड़ने के लिए गिट का उपयोग करने के बारे में बहुत कुछ नहीं था। जेबीहेव (आईएमओ) को अपनाने के लिए लोगों को प्राप्त करने के लिए हमें उदाहरणों का पालन करना वास्तव में आसान बनाना होगा। इस 'ट्रेडर' उदाहरण से पहले जेबीहेव वेनिला + एक गिइस संस्करण + एक स्प्रिंगफ्रेमवर्क संस्करण + एक पिकोकॉन्टेनर संस्करण सभी एक ही स्रोत निर्देशिका में था। अब, चार शाखाएं 'व्यापारी' उदाहरण के सबसे कैननिक प्रतिनिधित्वों को चित्रित कर सकती हैं।

+0

क्षमा करें लेकिन लिंक टूटा हुआ है –

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