¿Cómo puedo clonar Git una versión específica?

3 minutos de lectura

avatar de usuario
vdegenne

Eso es todo; Terminé la primera versión de mi aplicación.

Comprometí el estado final de la primera versión:

git commit -m "some final tweaks"

Y creó la etiqueta de control de versiones:

git tag v1.0.0

Y pushed todo de forma remota.

Ahora, estoy en proceso de comenzar a desarrollar la segunda versión de la aplicación con algunas mejoras que ya tengo en mente.

¿Es posible, más tarde, cuando haya hecho estas mejoras y commit y crear un nuevo tag (v2.0.0), para que Git clone un estado específico de Git proporcionando una etiqueta?

Si la última versión es v2.0.0todavía puedo clonar la versión 1.0.x?

Algo como git clone [email protected]:mygitname/theproject.git#1.0.2 ¿por ejemplo?

Puedes hacer esto con el --branch bandera, que también aceptará una etiqueta.

$ git clone  [email protected]:mygitname/theproject.git --branch 1.0.2

En la mayoría de los casos, solo querrá verificar la etiqueta como se describe en la respuesta de Exprator.

  • funciona mejor así: $ git clone [email protected]:mygitname/theproject.git --branch v1.0.2

    – Max Muster

    23 de julio a las 11:54

  • @MaxMuster Eso se ve igual solo que con un nombre de etiqueta diferente.

    – jordanm

    24 de julio a las 17:55


  • En la pregunta OP, las etiquetas tienen una “v” al final… git tag v1.0.0

    – Max Muster

    28 de julio a las 9:13

avatar de usuario
Marcos Adelsberger

Con git normalmente no clonas una versión en particular; tú clone todo el repositorio, haciendo una copia local de cada versión, y luego checkout una versión específica.

De manera predeterminada, cuando clona, ​​una versión específica (generalmente master) está desprotegido. Puede cambiar la versión que se desprotege con el -b opción (o, por supuesto, puede comprobar la versión deseada después de que se complete la clonación).

Pero hay escenarios en los que ese no es un consejo útil en la práctica, como si está usando npm para obtener algo de git (para que no emita directamente un clone dominio). En el caso de npm, puede agregar un identificador de confirmación (rama, etiqueta, SHA de confirmación, etc.) al final de la URL como un fragmento hash. (AFAIK eso solamente funciona con npm aunque; no funciona con git clone la forma en que preguntaste.)

En aras de la exhaustividad, si Ud. De Verdad quería clonar solo una versión en particular (copiando solo esa versión del control remoto a su máquina local), podría hacer algo como

git clone --depth 1 -b branch_name <url>

(dónde branch_name es el nombre de una rama o una etiqueta).

  • ¿Dónde debo mencionar la URL del repositorio en el comando que mencionó anteriormente? ¡Gracias!

    – Milán

    29 de julio de 2020 a las 16:20


  • los git clone la sintaxis coloca todas las opciones antes de la URL (que luego puede ir seguida de una ruta a un directorio local en el que clonar). Entonces, para la situación descrita aquí, la URL iría en último lugar.

    –Mark Adelsberger

    29 de julio de 2020 a las 18:06

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad