git में आप पाइप git-diff
दोनों के बीच इस तरह प्रतिबद्ध के उत्पादन कर सकते हैं:
git diff fa1afe1 deadbeef > patch.diff
डेवलपर के लिए patch.diff
भेजें और उसे git-apply
जाने इसे इस तरह अपने कार्यक्षेत्र के लिए:
git apply patch.diff
यदि अन्य डेवलपर के पास पहले से ही अपने भंडार में उपलब्ध है, तो वह हमेशा इस तरह विलय किए बिना इसे अपने आप में पाइप कर सकता है:
git apply < git diff fa1afe1 deadbeef
फिर आप add और commit diff the usual way में परिवर्तन कर सकते हैं।
अब जब आप पैच को मास्टर शाखा (जो सार्वजनिक है) में विलय करना है तो दिलचस्प हिस्सा आता है। निम्नलिखित संशोधन पेड़ पर विचार करें जहां C*
C
से लागू पैच मास्टर शाखा में है:
A---B---C---D master, public/master
\
E---C*---F feature_foo
आप git-rebase
उपयोग कर सकते हैं विषय शाखा अद्यतन करने के लिए (इस उदाहरण feature_foo
नामित में) के साथ यह नदी के ऊपर सिर है।
git rebase master feature_foo
Git इस तरह संशोधन पेड़ को पुनर्व्यवस्थित और भी पैच ही लागू होंगे::
A---B---C---D master, public/master
\
E*---F* feature_foo
नदी के ऊपर शाखा में विलय अब एक हो जाएगा क्या इसका मतलब है कि जब आप में निम्न लिखें है आसान फास्ट फॉरवर्ड विलय। यह भी जांचें कि नया E*
और F*
क्रमशः पिछले E
और F
के रूप में काम करता है।
आप एक ही कदम का उपयोग करके किसी अन्य डेवलपर की शाखा के खिलाफ एक ही काम कर सकते हैं लेकिन इसे सार्वजनिक रिपो पर करने के बजाय, आप डेवलपर के भंडार से fetching संशोधन होंगे। इस तरह आपको अन्य डेवलपर को पैच के लिए नहीं पूछना पड़ेगा यदि वह पहले से ही अपने रेपो में प्रकाशित होने से उपलब्ध है।
लिए कृपया ध्यान दें एक सार्वजनिक शाखा rebase कभी नहीं क्योंकि आदेश Git इतिहास को फिर से लिखने होगा जो कुछ आप शाखाओं है कि लोगों पर निर्भर करती है पर करने के लिए नहीं करना चाहती है और जब दूरदराज के खजाने को विलय एक मेस का निर्माण करेगा। integrate often को कभी भी न भूलें ताकि आपकी टीम में अन्य लोग आपके परिवर्तनों का हिस्सा ले सकें।
बाद में पता चला कि आप पैच को लागू करने और पैच को लागू करने के लिए पैच और गिट प्रारूपित करने के लिए गिट प्रारूप-पैच के साथ एक ही काम कर सकते हैं। उदाहरण: गिट प्रारूप-पैच -के - स्टडआउट आर 1 ... आर 2 | गिट एम -3-के – Spoike