Для любого сценария, который я предлагаю вам запустить, было бы целесообразно сохранить или зафиксировать все ваши изменения.
Мне нужно было переместить несколько веток с одного пульта на другой.Эти ответы требовали, чтобы ранее существовали локальные ветви
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».
Может быть лучше способ, который не делает нескольких нажатий.
Если вы используете мой код, вы, вероятно, захотите использовать кэширование учетных данных, в противном случае вам придется вводить свои учетные данные несколько раз.
Для окон :
Примечание: Этот скрипт для linux .Если вы запустите его в «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'