Con GitHub, ¿cómo empujo todas las ramas al agregar un repositorio existente?

125

Creé un nuevo repositorio de GitHub; quiero poner mi repositorio existente allí.
Seguí las instrucciones:

cd existing_git_repo
git remote add origin [email protected]:acme-org/myprj.git
git push origin master

Esto solo empuja la rama maestra a GitHub.
¿Cómo transfiero todo (incluidas todas las ramas) de mi repositorio existente a mi nuevo repositorio de GitHub?

arenque ahumado
fuente
Nota: también tienes git push --follow-tagscon git 1.8.3+ (mayo de 2013). Vea mi respuesta editada a continuación
VonC

Respuestas:

237

Nota: git push --todos no empujarán sus etiquetas, solo sus ramas.

git push --all
git push --tags

realmente empujaría todo . Consulte también " Configurar git para tirar y empujar todas las ramas ".
No olvide la --dry-runopción de hacer alguna prueba antes de presionar todo.
Consulte también la ayuda de GitHub " Trabajar con controles remotos " para establecer su origen en su repositorio remoto de GitHub.


Como se menciona en " ¿Cómo hacer que" git push "incluya etiquetas dentro de una rama? ", Se introdujo git 1.8.3+ (mayo de 2013):

git push --follow-tags

Esto no empujará todas las etiquetas, pero solo las accesibles desde la (s) CABEZA (s) de la (s) rama (s) que está presionando.

Eso puede ayudar a mantener esa operación (empujar confirmaciones y etiquetas) con un comando en lugar de dos.

Git 2.4.1+ (Q2 2015) presentará la opción push.followTags.

VonC
fuente
Parece que esto no funciona cuando desea empujar a otro control remoto (en lugar de origen), solo empuja mi rama actual.
Aloys
@Aloys que dependerían de su versión de git y la política de inserción predeterminada actual: stackoverflow.com/questions/10002239/…
VonC
Si desea impulsar ramas remotas, también use--mirror
BFar
18

La respuesta aceptada no es del todo correcta, o al menos no me funcionó. También necesitaba especificar el repositorio remoto, por ejemplo:

git push origin --all
Iain Hunter
fuente
Especificar el control remoto solo es necesario cuando el flujo ascendente no está configurado.
aross
Se requiere repositorio si se han agregado múltiples controles remotos, creo ( $git remote -v)
michael
2
Para establecer el seguimiento entre las git push -u origin --all
sucursales