मैं एक Git शाखा को अपने स्वयं के भंडार में कैसे स्थानांतरित करूं?


180

मेरे पास एक शाखा है जिसे मैं एक अलग गिट रिपॉजिटरी में स्थानांतरित करना चाहता हूं, और आदर्श रूप से उस शाखा के इतिहास को प्रक्रिया में रखता हूं। अब तक मैं देख git filter-branchरहा हूं, लेकिन मैं यह नहीं बता सकता कि यह वह कर सकता है जो मैं करना चाहता हूं।

मैं अपने स्वयं के भंडार में एक Git शाखा कैसे निकालूं?

जवाबों:


281

आप एक शाखा को एक नए भंडार में धकेल सकते हैं। इसका सारा इतिहास इसके साथ जाएगा। फिर आप यह चुन सकते हैं कि मूल रिपॉजिटरी से शाखा को हटाना है या नहीं।

जैसे

git push url://to/new/repository.git branch-to-move:new-branch-name

एक नए भंडार के लिए, नया-शाखा-नाम आमतौर पर मास्टर होता है।

एक नया, खाली भंडार तैयार करना git init।


15
बस किसी की सोच के मामले में, मैंने URL को Git रिपॉजिटरी डायरेक्टरी के पथ के साथ प्रतिस्थापित किया, और यह पूरी तरह से काम करता है।
— अनुपाजो

48
आप नए रिपॉजिटरी में शाखा का नाम भी रख सकते हैं: git push url://to/new/repository.git branch-to-move:new-branch-name
— यवेस वान ब्रोकेवन

4
यवेस की उपरोक्त टिप्पणी सही है, अन्यथा आपके पास वहां कोई मास्टर नहीं होगा और क्लोनिंग प्रक्रिया समाप्त हो जाएगी warning: remote HEAD refers to nonexistent ref, unable to checkout.। यदि पहले से ही उस स्तर पर, बस साथ चले git checkout -b branch-to-moveऔर आप सुरक्षित git checkout -b master
— रहें

git checkout -b masterमेरी समस्या को हल किया यह स्क्रीन पर था error: src refspec master does not match any.(केवल आश्चर्य है कि मैंने शाखा का नाम मुझे क्यों नहीं देखा था) धन्यवाद
— kangkyu

3
यदि यह उत्तर आपके लिए भी भ्रामक था, तो यहां बताया गया है कि मैंने इसे बनाने के लिए किस तरह से काम किया है: 1) अपने टर्मिनल में, उस डायरेक्टरी में रहें जिसमें रेपो और ब्रांच होती है जिसे आप एक नए रेपो में बनाना चाहते हैं; 2) urlएक git url होना चाहिए, जैसे git@github.com: brianzelip / groceries.git; 3) branch-to-moveवर्तमान रेपो की वह शाखा है जिसे आप एक नए रेपो में बनाना चाहते हैं; 4) new-branch-nameनया रेपो में नई शाखा के लिए आप जो नाम चाहते हैं, वह है master:।
— ब्रायन ज़ेलिप

19

यह सभी शाखाओं के इतिहास को बनाए रखेगा, लेकिन विशेष रूप से एक शाखा को अपना प्रतिलिपि बिंदु बनाएँ:

git clone -b newbranch CurrentRepo NewRepo

यह 'कुछ भी' नहीं चलता है, बस एक प्रतिलिपि बनाता है।


2
वर्थ नोटिंग वह clone -bनई है। इसके लिए git> = 1.6.5 (अक्टूबर 2009 को जारी) की आवश्यकता है।
— सीबी बेली

मुझे यह काम करने में परेशानी हो रही थी, लेकिन इससे पहले कि मैं चार्ल्स बैली के संदेश को देखता।
— अनुपमा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.