पुराने दिनों में (2006, 1.5.3 से पहले और its user manual), git rebase
presented like so था:
चेरी उठा का एक विशेष मामला है अगर आप एक के लिए एक पूरी शाखा ले जाना चाहते हैं नया "आधार" प्रतिबद्धता।
यह git-rebase
द्वारा किया जाता है।
आप स्थानांतरित करने के लिए शाखा निर्दिष्ट (डिफ़ॉल्ट HEAD
) और जहां के लिए (कोई डिफ़ॉल्ट) ले जाने के लिए, और:
git cherry-picks
कि शाखा से बाहर हर पैच,
- लक्ष्य के शीर्ष पर लागू होता है ,
- और नव निर्मित प्रतिबद्धताओं के लिए
refs/heads/<branch>
पॉइंटर को स्थानांतरित करता है।
परिभाषा से
तो, बना दिया करता जाएगा (और कोई करना पड़ता प्रतिबद्ध)
रिबेस का एक विशेष मामला है जब आप अपने काम को विभाजित करने, चलती (और नए पुनः) चाहते हैं करता है ।
ही ट्यूटोरियल (आवश्यक नहीं के किसी भी आगे एक रिबेस के बाद प्रतिबद्ध का एक उदाहरण के रूप में) से:
एक शाखा "देव" कहा जाता है आप वर्तमान प्रधान में दो सुविधाओं के विकास को मिलाया गया है मान लीजिए,।
x-x-x-x (master)
\
-f1a-f1b-f1c-f2a-f2b-f2c (dev, HEAD)
आप "dev1" और "dev2" में उन्हें विभाजित करना चाहते हैं। यह मानते हुए कि HEAD
मास्टर एक शाखा है, तो आप के माध्यम से
git log master..HEAD
देख सकते हैं या तो या सिर्फ
git rev-list master..HEAD
किसी भी तरह से साथ प्रतिबद्ध के एक कच्चे सूची प्राप्त, मान लीजिए कि आप dev1
में इच्छित कामों की एक सूची निकालते हैं और उस शाखा को बनाते हैं:
git checkout -b dev1 master
for i in `cat commit_list`; do
git-cherry-pick $i
done
-f1a'-f1b'-f1c' (dev1, HEAD)
/
x-x-x-x (master)
\
-f1a-f1b-f1c-f2a-f2b-f2c (dev)
आप सूची आप dev2
शाखा उत्पन्न करने के लिए संपादित की अन्य आधा उपयोग कर सकते हैं, लेकिन आप यकीन है कि अगर आप कुछ भूल गए थे या सिर्फ इतना है कि मैनुअल काम कर रही की तरह महसूस नहीं करते नहीं हैं, तो आप इसे करने के लिए गिट-रीबेस का उपयोग कर सकते हैं।
git checkout -b dev2 dev # Create dev2 branch
git-rebase --onto master dev1 # Subreact dev1 and rebase
यह dev1
में सभी पैच कि dev
में हैं और नहीं मिलेगा, मास्टर की चोटी पर उन्हें लागू है, और परिणाम dev2
कहते हैं। संक्षिप्त और सटीक -
-f1a'-f1b'-f1c' (dev1, HEAD)
/
x-x-x-x (master)
\
-f2a-f2b-f2c (dev2, HEAD)
इस उत्तर मैं जरूरत है। मैं उनके अतिरिक्त मूल्य के लिए लंबे प्रयासों की सराहना करता हूं, लेकिन उन्हें वास्तव में शुरुआत में उपर्युक्त पाठ को कम से कम शामिल करना चाहिए। जब मैं और अधिक बोल्ड हो जाता हूं तो मुझे लगता है कि मैं सिर्फ जवाब संपादित करना शुरू कर दूंगा ताकि शीर्ष रैंकिंग वाले उत्तर में संक्षेप में "उत्तर" भी हो ... वैसे भी, जिस तरह से मुझे इसकी आवश्यकता है, उसका जवाब देने के लिए धन्यवाद देना चाहता हूं। – msouth