Cómo deshacerse de "golpearía la etiqueta existente"

106

Estoy usando git en VSCodium y cada vez que intento sacar git se quejan.

Mirando en el tronco veo

> git pull --tags origin master
From https://github.com/MY/REPO
 * branch            master     -> FETCH_HEAD
 ! [rejected]        latest     -> latest  (would clobber existing tag)
   9428765..935da94  master     -> origin/master

Hacer el comando con --forceayuda hasta la próxima vez.

No tengo claro qué va mal aquí. ¿Qué sucedió y cómo puedo resolver este problema?

Quiero decir: además de destruir mi repositorio local y volver a clonar.

Skeeve
fuente

Respuestas:

275

Debe actualizar sus etiquetas locales con etiquetas remotas:

git fetch --tags -f

Luego tira de nuevo.

Tuan Tran
fuente
11
Esto funcionó para mí. Tenía problemas con VSCode y luego ejecutar esto en la línea de comandos solucionó el problema. :)
Juan Luis Faylon
2
Gracias, ¿puede explicarnos más sobre esto, por favor? ¿Es este un comando de una sola vez, cuál fue exactamente el problema y cómo lo resolvió?
Sagiv bg
5
@ Sagivb.g en el control remoto, alguien elimina una etiqueta y crea una nueva con el mismo nombre, luego esto sucederá en su local
Tuan Tran
O simplemente de git pull --tags -finmediato.
Der Hochstapler
36

Como dices que no está claro qué va mal, supongo que no estás usando esa etiqueta para nada y que solo quieres hacer tu propio trabajo.

Desactive esta configuración:

ingrese la descripción de la imagen aquí

Ahora estás listo.


Explicación detallada:

Las etiquetas son solo referencias a confirmaciones específicas (como los nombres de las ramas). La principal diferencia es que git(hasta donde yo sé) asume que las etiquetas no cambiarán, donde se espera que las ramas se actualicen.

Entonces, el "error" es que tiene en su local una etiqueta llamada latestapuntando a confirmar X - pero el control remoto tiene una etiqueta llamada latestapuntando a confirmar Y. Si aplica el cambio desde el control remoto sobrescribirá su etiqueta local.

VSCode extraerá todas las etiquetas de forma predeterminada, por lo que obtendrá el error.

No hay nada de malo en tener una etiqueta "en movimiento" como latest, eso no es algo que VSCode tenga en cuenta (opinión personal).


Alternativamente, puede evitar el problema usando la línea de comando e ingresando manualmente el git pullcomando. Específicamente, debe omitir --tagseste paso del proceso.

Si hace esto, sus etiquetas no se actualizarán, pero no creo que sea una preocupación aquí.

Vlad274
fuente
Muchas gracias. Tuve que actualizar mi VSCodium, pero luego funcionó. Creo que también podría deshacerme de mi etiqueta local.
Skeeve
1
vea mi respuesta a continuación
Tuan Tran