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