Para cualquier script que sugiera que ejecute, sería aconsejable guardar o confirmar todos los cambios.
Necesitaba empujar varias ramas de un control remoto a otro. Estas respuestas requerían que las sucursales locales existieran previamente
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
Simplemente cambie origin1 al control remoto de origen y origin2 al control remoto de destino. Copie esto en "remoteBranchCloner.sh" y llámelo usando "sh callBranchCloner.sh".
Puede haber una mejor manera, que no haga varios empujones.
Si usa mi código, probablemente quiera usar el almacenamiento en caché de credenciales, de lo contrario, debe escribir sus credenciales varias veces.
Para ventanas :
Nota: Este script es para Linux . Si lo ejecuta en "git bash", el script funcionará, pero no puede ejecutarlo desde la consola nativa sin haber instalado algo especial.
git config [--global] credential.helper wincred
Para linux
git config [--global] credential.helper cache
Donde [--global] significa opcionalmente agregar --global
Si desea configurar el seguimiento remoto de todas las sucursales a un nuevo control remoto:
DEST_R=remotename
for cbranch in `git branch`
do
git checkout $cbranch
git branch -u guru/$cbranch
done
Almacenado como un archivo .sh y ejecutado con "sh filename.sh" configurará todas las secuencias ascendentes para rastrear 'remotename' remoto