2011-08-10 15 views
6

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

ऐसा कुछ ऐसा है, उदाहरण के लिए, इतिहास पुनर्लेखन के साथ?

स्पष्ट करने के लिए, मेरे निर्देशिका संरचना है:

root/x 
root/y 
root/z 
प्रतिबद्ध के कुछ

तीनों निर्देशिका प्रभावित करते हैं। अब, मैं इस तरह से विलय करना चाहता हूं कि इतिहास में मेरे पास y और z दोनों में परिवर्तन हैं, लेकिन x पर नहीं।

उत्तर

6

आप इसे करने से है, तो निर्देशिका के राज्य में छेड़छाड़ किए बिना अन्य शाखा विलय कर सकते हैं: के रूप में द्वारा @useless in his answer

+0

धन्यवाद। यह आखिरी कदम ऐसा कुछ है जिसे मैं टालना चाहता हूं। रीबेस एक कोशिश करने के लिए एक अच्छी चीज की तरह लगता है, लेकिन मेरे पास 100 से अधिक काम हैं ... –

+0

अच्छी तरह से, मेरा दृष्टिकोण काम करता है :) यह – knittl

+0

गिट में परमाणु काम से बचने के लिए स्नान में पानी से बचने की तरह है 'बुराई विलय' बनाता है। आप इसे आज़माने के लिए स्वतंत्र हैं, लेकिन यह नहीं है कि चीज का उपयोग कैसे किया जाना था, और आप बहुत कठिन काम करने जा रहे हैं। –

3

यदि आपके परिवर्तन अभी भी स्थानीय हैं, तो सबसे आसान तरीका splitting your commits द्वारा वास्तविक रूप से ऑर्थोगोनल परिवर्तनों में आप स्वतंत्र रूप से विलय कर सकते हैं।


मृत लिंक मरम्मत: बजाय this link कोशिश (या बस Git rebase के लिए अपने स्थानीय मैनपेज देखें), और नीचे खोज के लिए विभाजन प्रतिबद्धता

+0

उल्लेख अगर मैं करता विभाजित अपने प्रतिबद्ध विभाजित करने के लिए

git merge --no-commit <branch> git reset root/x git commit 

बेहतर अभी तक, मैं कैसे करना है उन्हें स्वतंत्र रूप से विलय करें? मेरा मतलब है, विलय करते समय, सभी चुने गए चुने गए प्रतिबद्धता तक प्रतिबद्ध होते हैं। मैं वास्तव में इस तरह समझने के लिए निश्चित नहीं हूँ। इसके बजाय '--no-commit' तरीका स्पष्ट है। –

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

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