Для будь-якого сценарію, який я пропоную вам запустити, було б розумно зберігати або вносити всі свої зміни.
Мені потрібно було просунути кілька гілок від одного віддаленого до іншого. Ці відповіді вимагали, щоб місцеві відділення існували раніше
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", встановить всі upstreams для відстеження віддаленого "remotename"