Si está moviendo todas las sucursales a un nuevo repositorio de uno antiguo, entonces en su repositorio local debe configurar el seguimiento de cada sucursal a las sucursales de origen existentes, antes de pasar al nuevo repositorio, de lo contrario, todas sus sucursales de origen no aparecerán en El nuevo origen. Haga esto manualmente rastreando o revisando cada rama, o use el único revestimiento:
for remote in `git branch -r | grep -v '\->' | grep -v master`; do git branch --track `echo $remote|sed 's=origin/=='` `echo $remote`; done
Este comando de una línea se basa en versiones de él en otras respuestas en esta página, pero podría decirse que es mejor porque:
- configura correctamente el seguimiento de la rama, a diferencia de algunas variantes anteriores de este comando en esta página que solo proporcionan un parámetro para rastrear y, por lo tanto, cada rama termina siendo el patrón de seguimiento, no es bueno
- nombra las sucursales locales sin el prefijo "origen /", que personalmente no quiero, y es coherente con lo que sucede cuando finaliza la compra de una sucursal normalmente.
- omite el maestro de seguimiento ya que eso ya está sucediendo
- en realidad no paga nada por lo tanto es rápido
- evita tropezar con -> en la salida de git branch -r
A continuación, si está cambiando de origen, reemplace el enlace al origen anterior y apunte a un nuevo control remoto. Asegúrese de crear primero el nuevo control remoto, utilizando la GUI de bitbucket / github, pero no agregue ningún archivo o habrá un problema de fusión. P.ej
git remote set-url origin git@bitbucket.org:YOUR/SOMEREPO.git
Ahora empuja. Tenga en cuenta que el segundo comando también es necesario para insertar las etiquetas:
git push -u --all origin
git push --tags origin