2015-11-18 5 views
5

मेरे पास question जैसी स्थिति है। वर्तमान में इस आदेश से पता चलता मुझे पूरी तरह से सब करता रहा जरूरत है:लॉग आउटपुट में प्रत्येक प्रतिबद्धता के साथ एक पैच बनाएं

git log --cherry-pick --oneline --no-merges --left-only branchB...branchA 

अब, मैं करता उपरोक्त आदेश में दिखाया गया है में से हर एक के साथ एक पैच फ़ाइल बनाना चाहते हैं। मैं यह कैसे कर सकता हूं?

उत्तर

2

इसे आजमाएं। मुझे आशा है कि यह बहुत देर हो चुकी है। नवीनतम एक करने के लिए जल्द से जल्द एक से, "%H" यह केवल SHA1 हैश प्रतिबद्ध युक्त प्रारूप है -

NUM=1 
for commit in $(git log --cherry-pick --no-merges --left-only branchB...branchA --reverse --pretty=tformat:"%H") 
do 
    git format-patch -1 $commit --start-number $NUM 
    ((NUM++)) 
done 

--reverse बलों git-log उलट क्रम में परिणाम पुश करने के लिए। हैश को एक एकल (-1) के रूप में प्रदान किया जा रहा है, जिससे पैच बनाने के लिए काम किया जाता है। बढ़ते मूल्य के साथ --start-number सही क्रम में पैच फ़ाइलों का निर्माण करने का कारण बनता है।

+0

मुझे एक ही समस्या थी जब एक और भंडार में माइग्रेट कर रहा था और सफलतापूर्वक फाइलें बनाई गई थीं। दुर्भाग्य से, मैं उन्हें लागू करने में सक्षम नहीं था। – mazharenko

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