2009-11-02 14 views
58

मेरे पास मेरे गिट भंडार में एक फ़ोल्डर है जिसे मैं अपने स्वयं के भंडार में ले जाना चाहता हूं। क्या फ़ोल्डर के साथ उस फ़ोल्डर के इतिहास को स्थानांतरित करना संभव है?इतिहास के साथ गिट में निर्यात उपट्री

मैं पहले सबफ़ोल्डर पर git rm -r --cached subfolder/ और फिर git init कर रहा हूं। हालांकि, इतिहास को नए भंडार में आयात नहीं किया गया है।

+2

के समान या डुप्लिकेट: http://stackoverflow.com/questions/811251/how-can-i-move-a-single-directory-from-a-git-repository-to-a- नया भंडार-whil ​​ –

+0

संभावित डुप्लिकेट [इतिहास को बनाए रखने के दौरान मैं एक गिट रिपोजिटरी से एक नई निर्देशिका में कैसे एक स्थानांतरित कर सकता हूं?] (http://stackoverflow.com/questions/811251/how-can-i- move-a-single-directory-from-a-git-repository-to-a-new-repository-whil) – user

उत्तर

84

git-filter-branch(1)

से एक उदाहरण का हवाला देते हुए भंडार के रूप में देखने के लिए पुनर्लेखन करता है, तो foodir/अपनी परियोजना जड़ दिया गया है, और अन्य सभी इतिहास त्यागने के लिए: इस प्रकार आप

git filter-branch --subdirectory-filter foodir -- --all 

उदाहरण के लिए, लाइब्रेरी उपनिर्देशिका को अपने स्वयं के भंडार में बदल सकते हैं। ध्यान दें - जो फ़िल्टर-शाखा विकल्पों को संशोधन विकल्प से अलग करता है, और सभी शाखाओं और टैग को फिर से लिखने के लिए।

+42

बस इसे मूल भंडार के क्लोन पर चलाने के लिए सुनिश्चित करें, क्योंकि यह बाकी रेपो को मिटा देता है। – bobDevil

+0

कमाल! मैं उस कामकाजी उदाहरण के बिना उस विकल्प को समझ नहीं पाया। धन्यवाद! – matpie

+0

इसके अलावा, सिर के लिए @bobDevil के लिए धन्यवाद। मैंने अपने सभी परिवर्तनों को अपने रिमोट/पहले/कोशिश करने के लिए धक्का दिया, इसलिए अगर मैं अपने रेपो को मिटा देता तो मैं सुरक्षित रहूंगा; लेकिन यह निश्चित रूप से अप्रत्याशित होगा। – matpie

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