Mi flujo de trabajo habitual cuando trabajo con git es algo como esto:
- crear un repositorio local
- hacer algo de trabajo en ese repositorio, agregar / cambiar archivos, etc.
- decidir que quiero una ubicación remota central para el repositorio y crear una
- enviar todas las confirmaciones de mi repositorio local a este nuevo repositorio remoto
Ahora, sin embargo, quiero ser capaz de push
y pull
desde este repositorio remoto sin tener que especificar dónde estoy empujando o tirando a partir; Quiero que mi maestro local rastree al maestro remoto.
La forma correcta de hacer esto no me queda clara y no he podido determinarla a partir de la documentación, aunque en realidad no debería ser más de un comando.
Debido a que es algo que solo se hace una vez por repositorio, generalmente he empleado una de dos soluciones simples, pero hacky:
- utilizado
git clone
para crear un nuevo repositorio local y eliminó el anterior. Después de la clonación de git, el nuevo repositorio se configura para rastrear el origen. - .git / config editado manualmente para hacer el origen de la pista maestra.
Creo que debería poder ejecutar un comando, probablemente alguna forma de git remote
configurar un repositorio existente para que el maestro rastree un maestro remoto. ¿Alguien puede decirme cuál es ese comando?
Respuestas:
Utilice el argumento de configuración ascendente:
La ejecución del comando anterior actualiza su archivo .git / config correctamente e incluso verifica con esta salida:
"Branch local-branch-name configurado para realizar un seguimiento de la rama remota remote-branch-name desde el origen"
EDITAR: Como dijo martijn : "En la versión Git v1.8.0, --set-upstream está en desuso. Use --set-upstream-to en su lugar".
Consulte esto para obtener más información.
fuente
--set-upstream
está en desuso. Úselo en su--set-upstream-to
lugar.git remote show <remote>
para ver qué ramas son seguidos por sus ramas localesgit push -u
set upstream
configura las asignaciones sin realmente presionar ningún código? push te obliga a insertar código para crear asignaciones. Tal vez aún no tenga un código, pero ¿desea establecer un mapeo?git help remote
debería mostrarte lo que necesitas saber. Creo que lo que quieres esTambién puede editar manualmente .git / config para configurarlos.
fuente
También puede usar esto si desea crear una nueva sucursal local para rastrear una sucursal remota:
o mejor:
fuente
En versiones más nuevas de git puedes usar
fuente
git branch --set-upstream BRANCH fatal: the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead.
The --set-upstream flag is deprecated and will be removed.
git branch master --set-upstream-to myupstream/master
fuente
Avance rápido tres años (vea lo que hice allí :-)), intenté extraer una rama sin seguimiento usando Git Bash y recibí
If you wish to set tracking information for this branch you can do so with:
Lo siguiente logró lo que necesitaba:
$ git branch --set-upstream-to=origin/develop develop Branch 'develop' set up to track remote branch 'develop' from 'origin'.
fuente
Utilice este comando:
git clone [<options>] [--] <repo> [<dir>]
fuente