สำหรับสคริปต์ใด ๆ ที่ฉันเรียกใช้คุณควรซ่อนหรือกระทำการเปลี่ยนแปลงทั้งหมดของคุณ
ฉันต้องการผลักดันหลายสาขาจากรีโมทหนึ่งไปยังอีกที่หนึ่ง คำตอบเหล่านี้จำเป็นต้องมีสาขาในท้องถิ่นก่อนหน้านี้
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
เพียงแค่เปลี่ยน origin1 เป็นรีโมตต้นทางและ origin2 เป็นรีโมตปลายทาง คัดลอกสิ่งนี้ลงใน "remoteBranchCloner.sh" และเรียกโดยใช้ "sh callBranchCloner.sh"
อาจมีวิธีที่ดีกว่าที่ไม่ต้องกดหลาย ๆ ครั้ง
หากคุณใช้รหัสของฉันคุณอาจต้องการใช้การแคชข้อมูลรับรองมิฉะนั้นคุณจะต้องพิมพ์เวลาให้บริการข้อมูลรับรองของคุณ
สำหรับ Windows :
หมายเหตุ: สคริปต์นี้สำหรับลินุกซ์ หากคุณเรียกใช้ใน "git bash"สคริปต์จะใช้งานได้ แต่คุณไม่สามารถเรียกใช้จากคอนโซลดั้งเดิมได้โดยไม่ต้องติดตั้งสิ่งพิเศษ
git config [--global] credential.helper wincred
สำหรับ linux
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" จะตั้งค่าให้อัปสตรีมทั้งหมดติดตาม 'remotename' แบบรีโมต