remove - git tag commits
Obteniendo todas las etiquetas desde un control remoto con git pull (4)
Actualmente tengo una configuración remota de git como la siguiente:
[remote "upstream"]
url = <redacted>
fetch = +refs/heads/*:refs/remotes/upstream/*
Cuando git pull
en Branch Master, todos los head remotos son captados en remotes / upstream, luego remotes / upstream / master se fusionan en master. Las etiquetas que se pueden alcanzar también se obtienen al mismo tiempo, lo cual es muy conveniente.
Me gustaría que git pull
además, todas las etiquetas del control remoto, no solo aquellas que son directamente accesibles desde los cabezales. Originalmente intenté tagopt == --tags
, pero encontré que esto solo causaba que las etiquetas fueran recuperadas y así rompió todo. (Junio incluso dice que es una terrible desconfiguración ).
¿Hay alguna manera de hacer que git pull
busque todas las etiquetas remotas por defecto, además de las cabezas remotas?
Debería poder lograr esto agregando un refspec para etiquetas a su configuración local. Concretamente:
[remote "upstream"]
url = <redacted>
fetch = +refs/heads/*:refs/remotes/upstream/*
fetch = +refs/tags/*:refs/tags/*
Es sencillo. Haz un
git fetch --todos
La opción --force
es útil para actualizar las etiquetas locales. Principalmente si tienes etiquetas flotantes:
git fetch --tags --force
La opción de extracción de git también tiene las opciones de fuerza, y la descripción es la misma:
Cuando se usa git fetch con: refspec, se niega a actualizar la rama local a menos que la derivación remota de la que proviene sea un descendiente de. Esta opción anula esa verificación.
pero, según el documento de --no-tags
:
De forma predeterminada, las etiquetas que apuntan a objetos que se descargan del repositorio remoto se recuperan y almacenan localmente.
Si esa declaración predeterminada no es una restricción, entonces también puedes probar
git pull --force
Una simple git fetch --tags
funcionaron para mí.