git subtree split
बिल्कुल ठीक करता है। --prefix
के माध्यम से एक फ़ोल्डर को देखते हुए यह आपके भीतर एक अलग पेड़ उत्पन्न करेगा कि आप एक और भंडार में धक्का दे सकते हैं और फिर फिट बैठकर उपयोग कर सकते हैं।
Git (1.8.1) के वर्तमान संस्करण सबट्री प्रलेखन शामिल नहीं है, लेकिन आप इसे यहाँ पा सकते हैं: https://github.com/apenwarr/git-subtree/blob/master/git-subtree.txt
प्रवाह आप इस्तेमाल कर सकते हैं है:
# In Repo A create your subtree split and push it
> git subtree split --prefix sub --branch subBranch
> git push C subBranch:master
# After some changes that touched the sub directory
> git subtree push --prefix sub C master
पिछले आदेश Wil पेड़ को दोबारा विभाजित करें (पूर्व विभाजित चीजों का उपयोग करके सी की वृक्ष अखंडता को मापने के लिए) और इसे C/master
पर दबाएं।
आप सामग्री के लिए इतिहास को निकालना चाहते हैं C
को धक्का दे आप --squash
विकल्प का उपयोग कर सकते हैं जब git split
-ing और git push
-ing। आपको सुसंगत होना चाहिए और इसे आगे बढ़ाना चाहिए, क्योंकि यदि आप स्क्वैश और गैर-स्क्वैश सामग्री उप-मिश्रण मिश्रण शुरू करना चाहते हैं तो प्रीवियो स्प्लिट्स को उचित रूप से विभाजित और पुन: उपयोग करने में सक्षम नहीं होंगे, और इस प्रकार आप इसे C
पर धक्का नहीं दे पाएंगे।
आखिरकार, एक बार जब आप sub
का पहला विभाजन बनाते हैं तो यह पूरी तरह से आवश्यक नहीं है कि आप इसे हटा दें और इसे एक नए उप-के रूप में पुनः आयात करें। यदि आप इसे git subtree
रखते हैं तो अन्य विभाजनों से पहले बनाए गए कामों को पुन: उत्पन्न/पुन: उपयोग करेंगे। यदि आप फ़ोल्डर को हटाते हैं और फिर बनाए गए कामों से sub
दोबारा जोड़ते हैं, तो यह अभी भी काम करना चाहिए, और यदि आप --squash
का उपयोग कर रहे हैं तो यह C
के साथ इतिहास के साथ आप जो चाहते हैं उससे मेल खाएंगे, लेकिन A
इतिहास रखते हुए)।