1720 votos

Descargar una etiqueta específica con Git

Estoy tratando de averiguar cómo puedo descargar una etiqueta particular de un repositorio Git - es una versión detrás de la versión actual.

Vi que había una etiqueta para la versión anterior en la página web de git, con nombre de objeto de algo largo número hexadecimal.

Pero el nombre de la versión es " Tagged release 1.1.5 ", según el sitio.

He probado un comando como este (con los nombres cambiados):

git clone http://git.abc.net/git/abc.git my_abc

Y sí conseguí algo: un directorio, un montón de subdirectorios, etc.

Si se trata de todo el repositorio, ¿cómo puedo llegar a la versión que busco? Si no es así, ¿cómo puedo descargar esa versión en particular?

2641voto

besen Puntos 10430
$ git clone

le dará todo el repositorio.

Después de la clonación, puedes listar las etiquetas con $ git tag -l y luego comprobar una etiqueta específica:

$ git checkout tags/<tag_name>

Mejor aún, haz un checkout y crea una rama (si no, estarás en una rama con el nombre del número de revisión de la etiqueta):

$ git checkout tags/<tag_name> -b <branch_name>

310voto

Toni Puntos 211
git clone --branch my_abc http://git.abc.net/git/abc.git

Clonará el repo y lo dejará en la etiqueta que le interese.

Documentación para la versión 1.8.0 de git clon estados.

--branch también puede tomar etiquetas y separa el HEAD en ese commit en el repositorio resultante.

95voto

grossvogel Puntos 4562

No soy un experto en git, pero creo que esto debería funcionar:

git clone http://git.abc.net/git/abc.git
cd abc
git checkout my_abc 

O

git clone http://git.abc.net/git/abc.git
cd abc
git checkout -b new_branch my_abc

La segunda variante establece una nueva rama basada en la etiqueta, lo que permite evitar un "HEAD desprendido". (manual de git-checkout)

Cada repositorio git contiene todo el historial de revisiones, por lo que clonar el repositorio te da acceso al último commit, además de todo lo que vino antes, incluyendo la etiqueta que estás buscando.

75voto

Chris J Puntos 3923

Puedes usar git archive para descargar una bola tar para una etiqueta o commit id dados:

git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar

También puede exportar un archivo zip de una etiqueta.

  1. Lista de etiquetas:

    git tag
    
    0.0.1
    0.1.0
  2. Exportar una etiqueta:

    git archive -o /tmp/my-repo-0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0
  3. Notas:

    • No es necesario especificar el formato. Lo recogerá el nombre del archivo de salida.
    • Especificar el prefijo hará que su código se exporte a un directorio (si incluye una barra al final).

14voto

Peter Johnson Puntos 1156

Si sus etiquetas se pueden clasificar mediante el sistema linux sort utilice esto:

git tag | sort -n | tail -1

Por ejemplo, si git tag devoluciones:

v1.0.1
v1.0.2
v1.0.5
v1.0.4

git tag | sort -n | tail -1 saldrá:

v1.0.5

git tag | sort -n | tail -2 | head -1 saldrá:

v1.0.4

(porque has pedido la segunda etiqueta más reciente)

para comprobar la etiqueta, primero clone el repo, luego escriba:

git checkout v1.0.4

o cualquier etiqueta que necesites.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X