यदि आप सभी शाखाओं को एक पुराने से एक नए रेपो में ले जा रहे हैं, तो अपने स्थानीय रेपो में आपको नई रेपो को आगे बढ़ाने से पहले, मौजूदा ब्रांच की प्रत्येक शाखा पर नज़र रखने की आवश्यकता होगी, अन्यथा आपकी सभी मूल शाखाएँ इसमें दिखाई नहीं देंगी। नया मूल। प्रत्येक शाखा पर नज़र रखने या जाँच करके या एक लाइनर का उपयोग करके इसे मैन्युअल रूप से करें:
for remote in `git branch -r | grep -v '\->' | grep -v master`; do git branch --track `echo $remote|sed 's=origin/=='` `echo $remote`; done
यह एक पंक्ति कमांड इस पृष्ठ पर अन्य उत्तरों में इसके संस्करणों पर आधारित है, लेकिन यकीनन बेहतर है क्योंकि:
- यह इस पेज पर इस कमांड के कुछ पुराने वेरिएंट के विपरीत, शाखा ट्रैकिंग को सही ढंग से सेट करता है, जो केवल एक पैरामीटर को --track पर सप्लाई करता है और इस प्रकार प्रत्येक शाखा ट्रैकिंग मास्टर को समाप्त करती है - अच्छा नहीं
- उपसर्ग के बिना स्थानीय शाखाओं के नाम "मूल /" जो मैं व्यक्तिगत रूप से नहीं चाहता हूं - और जब आप किसी शाखा को सामान्य रूप से चेकआउट करते हैं तो उसके अनुरूप होता है।
- पहले से ही हो रहा है पर नज़र रखने वाले मास्टर
- वास्तव में कुछ भी चेकआउट नहीं है इस प्रकार तेज है
- गिट शाखा -r के उत्पादन में -> से अधिक ठोकर खाने से बचा जाता है
अगला, यदि आप मूल स्विच कर रहे हैं, तो पुराने मूल के लिंक को बदलें और एक नया रिमोट इंगित करें। सुनिश्चित करें कि आप पहले बिटबकेट / गितुब जीयूआई का उपयोग करके नया रिमोट बनाएं, लेकिन इसमें कोई फाइल न जोड़ें या मर्ज की समस्या होगी। उदाहरण के लिए
git remote set-url origin git@bitbucket.org:YOUR/SOMEREPO.git
अब धक्का लगाओ। नोट दूसरी कमांड को टैग को पुश करने के लिए आवश्यक है:
git push -u --all origin
git push --tags origin