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