Đối với bất kỳ tập lệnh nào tôi cài đặt bạn chạy, sẽ là khôn ngoan nếu bỏ qua hoặc cam kết tất cả các thay đổi của bạn.
Tôi cần phải đẩy một số chi nhánh từ điều khiển này sang điều khiển khác. Những câu trả lời yêu cầu rằng các chi nhánh địa phương tồn tại trước đó
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
Chỉ cần thay đổi origin1 thành điều khiển từ xa nguồn và origin2 thành điều khiển từ xa đích. Sao chép này vào "remoteBranchCloner.sh" và gọi nó bằng cách sử dụng "sh callBranchCloner.sh".
Có thể có một cách tốt hơn , đó là không thực hiện vài cú đẩy.
Nếu bạn sử dụng mã của tôi, bạn có thể muốn sử dụng bộ đệm ẩn thông tin xác thực, nếu không , bạn phải nhập thời gian máy chủ thông tin đăng nhập của bạn.
Đối với cửa sổ :
Lưu ý: Kịch bản này là dành cho linux . Nếu bạn chạy nó trong "git bash" , tập lệnh sẽ hoạt động, nhưng bạn không thể chạy nó từ bảng điều khiển gốc mà không cần cài đặt một cái gì đó đặc biệt.
git config [--global] credential.helper wincred
Dành cho linux
git config [--global] credential.helper cache
Trong đó [--global] có nghĩa là tùy chọn thêm --global
Nếu bạn muốn đặt theo dõi từ xa cho tất cả các chi nhánh thành một điều khiển từ xa mới:
DEST_R=remotename
for cbranch in `git branch`
do
git checkout $cbranch
git branch -u guru/$cbranch
done
Được lưu dưới dạng tệp .sh và được chạy với "sh filename.sh" sẽ đặt tất cả các luồng ngược lên để theo dõi 'remotename' từ xa