He clonado un repositorio de git y luego verifiqué una etiqueta:
# git checkout 2.4.33 -b my_branch
Esto está bien, pero cuando intento ejecutar git pull
en mi rama, git escupe este error:
No hay información de seguimiento para la sucursal actual. Especifique con qué rama desea fusionarse. Ver git-pull (1) para más detalles.
git pull <remote> <branch>
Si desea establecer información de seguimiento para esta sucursal, puede hacerlo con:
git branch --set-upstream new origin/<branch>
Solo quiero git pull
actualizar la rama maestra y dejar sola mi rama actual (de todos modos, es una etiqueta). ¿Es posible algo así?
La razón por la que necesito esto es que tengo un script automático que siempre git extrae el repositorio y, por supuesto, falla debido al error anterior.
git
git-pull
git-checkout
alesko
fuente
fuente
Respuestas:
Editar: para versiones más nuevas de Git,
--set-upstream master
ha quedado en desuso, debe usar--set-upstream-to
en su lugar:Como se le solicitó, puede ejecutar:
Después de eso, simplemente puede ejecutar
git pull
para actualizar su código.fuente
git checkout master
. No pude hacerlogit pull
porque se perdió la referencia al origen. Ahora funciona. ¡Gracias!Tuve el mismo problema y lo solucioné con este comando:
Desde el archivo de ayuda, -u básicamente establece el valor predeterminado para los tirones:
fuente
Pruebe estos comandos:
fuente
Vuelva a la rama maestra usando
y luego ejecuta la
git pull
operaciónDespués, puede volver a su
my_branch
nuevo.fuente
@alesko : no es posible hacer solo
git pull
después de finalizar la compramy_branch
para actualizarmaster
solo la rama.Porque
git pull
también se fusionará con la rama actual -> en su escenario con elmy_branch
@ Simon : eso también hará el empujón. ¿porqué es eso?
y según los documentos:
fuente
Primero, asegúrese de estar en la rama correcta.
Entonces (solo una vez):
Después de eso, esto funciona de nuevo:
fuente
Es posible que tenga múltiples sucursales. Y su rama actual no estableció su flujo ascendente en remoto.
Pasos para arreglar esto:
p.ej
Después de hacer esto, cuando lo hace
git pull
, se extrae de la rama especificada.fuente
Puede especificar qué rama desea extraer:
O puede configurarlo para que su rama maestra local rastree la rama maestra github como una cadena ascendente:
Este seguimiento de bifurcación se configura automáticamente cuando clona un repositorio (solo para la bifurcación predeterminada), pero si agrega un control remoto a un repositorio existente, debe configurarlo usted mismo. Afortunadamente, el consejo dado por git hace que sea muy fácil recordar cómo hacerlo.
--set-upstream está en desuso en git 1.9.x, aparentemente. En el futuro, querrás usar algo como
asumiendo que ya has revisado master. Si no,
git branch -u origin/master master
funcionaráfuente
Prueba esto
fuente
Debe configurar su seguimiento (ascendente) para la sucursal actual
Ya está en desuso en lugar de eso, puede usar --track flag
También me gusta la referencia del documento que notó @casey:
fuente
Lo que funcionó para mí fue: git branch --set-upstream-to = origin master Cuando hice un pull de nuevo, solo recibí las actualizaciones de master y la advertencia desapareció.
fuente
Si como yo necesita hacer esto todo el tiempo, puede configurar un alias para hacerlo automáticamente agregando lo siguiente a su
.gitconfig
archivo:Cuando vea el mensaje
There is no tracking information...
, simplemente ejecutegit set-upstream
, luegogit push
nuevamente.Gracias a https://zarino.co.uk/post/git-set-upstream/
fuente
Para descargar actualizaciones:
Sin embargo, esto solo actualiza una referencia llamada
origin/master
. La mejor manera de actualizar su localmaster
sería el pago / fusión mencionado en otro comentario. Si puede garantizar que su localmaster
no se ha desviado del tronco principal queorigin/master
está encendido, podría usarlogit update-ref
para asignar su corrientemaster
al nuevo punto, pero probablemente esa no sea la mejor solución para usar de manera regular ...fuente
Este comando está en desuso:
git branch --set-upstream master origin/master
Entonces, cuando intento configurar el seguimiento, este es el comando que funcionó para mí:
fuente