tipos soft sirve repositorio recuperar qué que para etiquetas cambiar borrado git git-pull git-checkout

soft - etiqueta de pago de git, la extracción de git falla en la sucursal



tipos de etiquetas en git (14)

Debe configurar su seguimiento (ascendente) para la sucursal actual

git branch --set-upstream master origin/master

Ya está en desuso en lugar de eso, puedes usar

git branch --track master origin/master

También me gusta la referencia del doc. Que aviso de @casey:

-u <upstream> Set up <branchname>''s tracking information so <upstream> is considered <branchname>''s upstream branch. If no <branchname> is specified, then it defaults to the current branch.

He clonado un repositorio git y luego he comprobado una etiqueta:

# git checkout 2.4.33 -b my_branch

Esto está bien, pero cuando trato de ejecutar git pull en mi rama, git escupe este error:

No hay información de seguimiento para la rama actual. Por favor, especifique con qué rama desea fusionarse. Ver git-pull (1) para más detalles

git pull <remote> <branch>

Si desea establecer la información de seguimiento para esta sucursal, puede hacerlo con:

git branch --set-upstream new origin/<branch>

Quiero que git pull solo actualice la rama principal y deje solo mi rama actual (de todos modos, es una etiqueta). Es algo como esto posible?

La razón por la que necesito esto es porque tengo un script automático que siempre tira del repositorio y, por supuesto, falla debido al error anterior.


Este comando está en desuso: git branch --set-upstream master origin/master

Entonces, cuando trato de configurar el seguimiento, este es el comando que funcionó para mí:

git branch --set-upstream-to=origin/master master


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ó.


Para simplemente descargar actualizaciones:

git fetch origin master

Sin embargo, esto solo actualiza una referencia llamada origin/master . La mejor manera de actualizar su master local sería la extracción / fusión mencionada en otro comentario. Si puede garantizar que su master local no se haya separado del tronco principal en el que se encuentra el origin/master , puede usar git update-ref para asignar su master actual al nuevo punto, pero probablemente esa no sea la mejor solución para usar en una base regular...


Primero, asegúrate de estar en la rama derecha.
Entonces (solo una vez):

git branch --track

Después de eso, esto funciona de nuevo:

git pull


Prueba esto

git checkout master git pull origin master


Pruebe estos comandos:

git pull origin master git push -u origin master


Puede especificar qué rama desea extraer:

git pull origin master

O puede configurarlo para que su rama maestra local rastree la rama maestra de github como un flujo ascendente:

git branch --set-upstream-to=origin/master master git pull

Este seguimiento de bifurcación se configura automáticamente para usted al clonar un depósito (solo para la sucursal predeterminada), pero si agrega un control remoto a un depósito existente, debe configurar el seguimiento usted mismo. Afortunadamente, el consejo dado por git hace que sea bastante fácil recordar cómo hacerlo.

--set-upstream está en desuso en git 1.9.x, al parecer. En el futuro querrías usar algo como

git branch -u origin/master

suponiendo que ya hayas verificado master. Si no, git branch -u origin/master master funcionará


Puede tener múltiples ramas. Y su sucursal actual no se estableció en sentido ascendente en remoto.

Pasos para arreglar esto:

git checkout branch_name git branch --set-upstream-to=origin/remote_branch_name local_branch_name

p.ej

// this set upstream of local branch develop to remote branch origin/develop, git branch --set-upstream-to=origin/develop develop

Después de hacer esto, cuando hagas git pull , se extraerá de la rama especificada.


Si, como yo, necesita hacer esto todo el tiempo, puede configurar un alias para hacerlo automáticamente agregando lo siguiente a su archivo .gitconfig :

[alias] set-upstream = !git branch --set-upstream-to=origin/`git symbolic-ref --short HEAD`

Cuando vea el mensaje There is no tracking information... , simplemente ejecute git set-upstream , luego git push nuevamente.

Gracias a https://zarino.co.uk/post/git-set-upstream/


Tuve el mismo problema y lo solucioné con este comando:

$ git push -u origin master

Desde el archivo de ayuda el -u básicamente establece el valor predeterminado para pulls:

-u, --set-upstream` For every branch that is up to date or successfully pushed, add upstream (tracking) reference, used by argument-less git-pull(1) and other commands. For more information, see branch.<name>.merge in git-config(1).


Vuelve a la rama principal usando

$ git checkout master

y luego ejecuta la operación de git pull

$ git pull origin/master

Luego, puedes volver a tu my_branch nuevamente.


Editar: para las versiones más nuevas de Git, --set-upstream master ha quedado obsoleto, en su lugar debe usar --set-upstream-to :

git branch --set-upstream-to=origin/master master

Como se indicó, puede ejecutar:

git branch --set-upstream master origin/master

Después de eso, simplemente puede ejecutar git pull para actualizar su código.


@alesko : no es posible solo hacer git pull después de pagar my_branch para actualizar solo la rama master .
Debido a que git pull también se fusionará con la rama actual -> en tu escenario al my_branch

@Simon : eso también hará el empuje. ¿porqué es eso?

$ git branch -u origin/master Branch master set up to track remote branch master from origin.

y según documentos:

-u <upstream> Set up <branchname>''s tracking information so <upstream> is considered <branchname>''s upstream branch. If no <branchname> is specified, then it defaults to the current branch.