आपके द्वारा चलाए जा रहे किसी भी स्क्रिप्ट के लिए, यह आपके सभी परिवर्तनों को छिपाने या प्रतिबद्ध करने के लिए बुद्धिमान होगा।
मुझे कई शाखाओं को एक रिमोट से दूसरे में पहुंचाने की जरूरत थी। इन उत्तरों के लिए आवश्यक था कि पहले स्थानीय शाखाएँ मौजूद थीं
SRC_R=origin1
DEST_R=origin2
for cbranch in $(git branch -r | grep $SRC_R | cut -d '/' -f2,3,4,5 | cut -d ' ' -f1)
do
git checkout $cbranch
git push $DEST_R $cbranch
done
बस मूल 1 को सोर्स रिमोट में बदलें, और ओरिजिन 2 को डेस्टिनेशन रिमोट में बदलें। इसे "RemoteBranchCloner.sh" में कॉपी करें और "sh callBranchCloner.sh" का उपयोग करके इसे कॉल करें।
एक बेहतर तरीका हो सकता है , जो कई धक्का नहीं देता है।
यदि आप मेरे कोड का उपयोग करते हैं, तो आप संभवतः क्रेडेंशियल कैशिंग का उपयोग करना चाहते हैं , अन्यथा आपको अपना क्रेडेंशियल सर्वरल टाईप करना होगा।
खिड़कियों के लिए :
नोट: यह लिपि लिनक्स के लिए है । यदि आप इसे "गिट बैश" में चलाते हैं, तो स्क्रिप्ट काम करेगी, लेकिन आप इसे कुछ विशेष स्थापित किए बिना देशी कंसोल से नहीं चला सकते।
git config [--global] credential.helper wincred
लिनक्स के लिए
git config [--global] credential.helper cache
जहाँ [--global] का अर्थ वैकल्पिक रूप से --global जोड़ना है
यदि आप सभी शाखाओं के लिए एक नया रिमोट बनाना चाहते हैं:
DEST_R=remotename
for cbranch in `git branch`
do
git checkout $cbranch
git branch -u guru/$cbranch
done
एक .sh फ़ाइल के रूप में संग्रहीत और "sh filename.sh" के साथ चलाया गया जो दूरस्थ 'रीमेकन' को ट्रैक करने के लिए सभी अपस्ट्रीम सेट करेगा