git fetch <gitserver> <remotetag>:<localtag>
===================================
Acabo de hacer esto. Primero me aseguré de saber la ortografía del nombre de la etiqueta.
git ls-remote --tags gitserver; : or origin, whatever your remote is called
Esto me dio una lista de etiquetas en mi servidor git para elegir. El póster original ya sabía el nombre de su etiqueta, por lo que este paso no es necesario para todos. El resultado se veía así, aunque la lista real era más larga.
8acb6864d10caa9baf25cc1e4857371efb01f7cd refs/tags/v5.2.2.2
f4ba9d79e3d760f1990c2117187b5010e92e1ea2 refs/tags/v5.2.3.1
8dd05466201b51fcaf4ca85897347d82fcb29518 refs/tags/Fix_109
9b5087090d9077c10ba22d99d5ce90d8a45c50a3 refs/tags/Fix_110
Elegí la etiqueta que quería y obtuve eso y nada más de la siguiente manera.
git fetch gitserver Fix_110
Luego etiqueté esto en mi máquina local, dándole a mi etiqueta el mismo nombre.
git tag Fix_110 FETCH_HEAD
No quería clonar el repositorio remoto como otras personas me han sugerido, ya que el proyecto en el que estoy trabajando es grande y quiero desarrollarlo en un ambiente limpio y agradable. Siento que esto está más cerca de las preguntas originales "Estoy tratando de descubrir cómo descargar UNA ETIQUETA PARTICULAR" que la solución que sugiere clonar todo el repositorio. No veo por qué alguien debería tener una copia del código fuente de Windows NT y Windows 8.1 si quieren ver el código fuente de DOS 0.1 (por ejemplo).
Tampoco quería usar CHECKOUT como otros han sugerido. Revisé una sucursal y no quise afectarla. Mi intención era buscar el software que quería para poder elegir algo y agregarlo a mi desarrollo.
Probablemente haya una manera de obtener la etiqueta en sí en lugar de solo una copia de la confirmación que fue etiquetada. Tuve que etiquetar el compromiso obtenido yo mismo EDITAR: Ah sí, lo he encontrado ahora.
git fetch gitserver Fix_110:Fix_110
Donde ve los dos puntos, ese es el nombre remoto: nombre local y aquí están los nombres de las etiquetas. Esto se ejecuta sin alterar el árbol de trabajo, etc. Parece que copia cosas del control remoto a la máquina local para que tenga su propia copia.
git fetch gitserver --dry-run Fix_110:Fix_110
con la opción --dry-run agregada, le permitirá ver lo que haría el comando, si desea verificar que es lo que desea. Así que supongo que un simple
git fetch gitserver remotetag:localtag
Es la verdadera respuesta.
=
Una nota separada sobre las etiquetas ... Cuando comienzo algo nuevo, generalmente etiqueto el repositorio vacío después de git init, ya que
git rebase -i XXXXX
requiere un compromiso, y surge la pregunta "¿cómo se vuelven a modificar los cambios que incluyen su primer cambio de software?" Entonces cuando empiezo a trabajar lo hago
git init
touch .gitignore
[then add it and commit it, and finally]
git tag EMPTY
es decir, crear un commit antes de mi primer cambio real y luego usarlo
git rebase -i EMPTY
si quiero reajustar todo mi trabajo, incluido el primer cambio .