2012-11-01 31 views
8

यह एक तरह से है कि मैं चेरी करना चाहते हैं एक को छोड़कर शाखा से सभी प्रतिबद्ध लेने, लेकिन मैं क्या करना चाहते हैं कि एक आदेश में ...गिट में एक शाखा से सभी परिवर्तनों को मर्ज करने का सबसे आसान तरीका क्या है?

• हम एक रिलीज है, जो एक शाखा बनाता है कटौती

• रिलीज हमारे सभी पोम्स में, शाखा पर एक नंबर पर, और मास्टर पर एक अलग संख्या

• मैंने शाखा में कई अन्य बदलाव किए हैं और उनको कॉपी करना चाहते हैं मास्टर

पर वापस परिवर्तन • मैंने शाखा को मास्टर में वापस विलय कर दिया है, जो झुकाव कोड कोड बदलता है, लेकिन संस्करण संख्या में परिवर्तन भी होता है, प्रत्येक पोम में विवाद पैदा करता है

क्या सभी पोम फ़ाइलों को अपनी पूर्व-विलय सामग्री में वापस करने के लिए कोई आसान तरीका है और फिर इसे मर्ज के परिणाम के रूप में प्रतिबद्ध करते हैं?

+0

यदि आपकी स्थिति यह है कि आप विलय करना चाहते हैं लेकिन किसी भी फाइल को विलय करने से बाहर निकलें, तो देखें [क्या मैं गिट में केवल गैर-विरोधाभासी परिवर्तनों को विलय कर सकता हूं?] (Http://stackoverflow.com/questions/12572530/ गिट-मर्ज-अनदेखी-संघर्ष) –

+0

एक बेहतर समाधान है। मेरे मर्ज ड्राइवर का उपयोग करें और आपको कुछ भी करने की ज़रूरत नहीं है :-) मेरे उत्तर पर एक नज़र डालें: http://stackoverflow.com/a/26866992 –

उत्तर

12

यहां मैं सुझाव देना चाहता हूं। सबसे पहले, एक नियमित रूप से मर्ज करना, लेकिन यह वादा नहीं है:

: तो आप अंतिम परिणाम के लिए प्रतिबद्ध करने में सक्षम होना चाहिए

for file in $(find . -name 'pom.xml'); do git checkout HEAD "$file"; done 

: तो

git checkout master 
git merge --no-commit <branch> 

, पोम फ़ाइलों के सभी वापस लौटने

git commit 
+0

बहुत अच्छा काम किया। धन्यवाद! लॉग ग्राफ चेरी-पिक से कहीं ज्यादा बेहतर दिखता है। अभी भी अनचाहे .orig और .BACKUP फ़ाइलों का एक गुच्छा है, लेकिन उनसे छुटकारा पाने का एक अलग मामला है। –

+0

+1 ... अच्छा दिनचर्या ढूंढें ... बहुत चालाक ;-) –