2013-01-16 15 views
5

चलो कहते हैं कि मैं एक पुल अनुरोध विलय कर रहा हूँ और बदलाव का एक लाइन के साथ मर्ज साथ देने के लिए भी चाहते हैं:मर्ज में अतिरिक्त परिवर्तन के लिए प्रतिबद्ध

> git merge --no-ff otherguy/feature-x 
> echo "Feature: X" >> changelog 
> git commit -am "Changelog update" 
> git push 

ऐसा ही एक बात में एक भी प्रतिबद्ध संभव है:

> git merge --no-ff --no-commit otherguy/feature-x 
> echo "Feature: X" >> changelog 
> git commit -am "Merge otherguy/feature-x + changelog" 
> git push 

ताकि एक ही प्रतिबद्धता में विलय और फ़ाइल दोनों परिवर्तन शामिल हों।

बाद जिस तरह से एक समझदार बात करने के लिए और क्या अप्रत्याशित परिणाम बाद में दिखाई दे सकते हैं है:

देने जब यहाँ नीचे की ओर खजाने से विलय, कि मैं हमेशा बदलाव का अद्यतन एक सवाल है?

अद्यतन: कारण है कि मैं एक अलग फाइल बदलाव का जरूरत है जब मैं पहले से ही एक Git लॉग है का सवाल है, फाइल में एक और कम कर दिए हैं है (प्रवेश या तो प्रति मर्ज, प्रतिबद्ध प्रति नहीं), कभी कभी बेहतर शब्दों और में एक निश्चित प्रारूप (जैसे डेबियन/चेंजलॉग)। तो, यह बाहरी उपयोग के लिए है।

उत्तर

5

आपको पहले यह विचार करना चाहिए कि क्या वास्तव में चेंजलॉग को भंडार में रखने के लिए वास्तव में उपयोगी है, जब आपके पास चेंजलॉग को पहले स्थान पर रखने के लिए गिट है।

इसके अलावा, किसी भी शाखा में मौजूद विलय में चीजें जोड़ने को evil merge कहा जाता है, और वैसे भी एक अच्छा अभ्यास नहीं है।

+1

गिट लॉग के रूप में फ़ाइल चेंजलॉग बनाम, मेरी चिंता डेबियन/चेंजलॉग जैसी चीजें हैं, यानी एक निश्चित प्रारूप में, इसलिए 'echo' के बजाय 'dch -e' जैसी कुछ होगी। – bereal

+3

उस स्थिति में आपको फ़ाइल को एक अलग प्रतिबद्धता के रूप में बदलना चाहिए, और विलय में परिवर्तन को छिपाने की कोशिश नहीं करना चाहिए। –

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