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 pullen 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 pullactualizar 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 masterha quedado en desuso, debe usar--set-upstream-toen su lugar:Como se le solicitó, puede ejecutar:
Después de eso, simplemente puede ejecutar
git pullpara actualizar su código.fuente
git checkout master. No pude hacerlogit pullporque 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 pulloperaciónDespués, puede volver a su
my_branchnuevo.fuente
@alesko : no es posible hacer solo
git pulldespués de finalizar la compramy_branchpara actualizarmastersolo la rama.Porque
git pulltambié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 masterfuncionará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
.gitconfigarchivo:Cuando vea el mensaje
There is no tracking information..., simplemente ejecutegit set-upstream, luegogit pushnuevamente.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 localmastersería el pago / fusión mencionado en otro comentario. Si puede garantizar que su localmasterno se ha desviado del tronco principal queorigin/masterestá encendido, podría usarlogit update-refpara asignar su corrientemasteral 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/masterEntonces, cuando intento configurar el seguimiento, este es el comando que funcionó para mí:
fuente