2012-09-04 20 views
34

Tengo una máquina Amazon EC2. Me gustaría clonar una versión anterior de github repo en esta máquina. Normalmente uso git clone https://linktomyrepo.git ¿Cómo puedo clonar una versión anterior, por ejemplo, una actualización de hace 14 días? Puedo ver la versión exacta que necesito en el historial de confirmaciones del repositorio, pero no sé cómo clonarla en la máquina EC2. ¿Debo usar el pequeño código SHA junto a cada confirmación?Clonación de una versión anterior de github repo

Respuesta

43

Siempre puede pagar cualquier estado que desee mediante el uso de un hash de confirmación.

Por ejemplo, al buscar un registro, identificaste que 233ab4ef era el estado que te interesaba, emite un git checkout 233ab4ef para pagar ese estado.

Otra forma de lograr esto es mediante el uso git checkout @{14.days.ago}

+0

¿Qué es '14' en' git checkout @ {14.days.ago} 'exactamente? – Shafizadeh

+0

Parece que hace varios días que desea clonar. Disculpas si eso no es lo que estabas preguntando. Esto dice "Clonar el repositorio según lo que parecía hace 14 días a partir de hoy" si leo este derecho. – jrb

25

Git no está diseñado de esa manera. Cuando clonas un repositorio, estás copiando todas las versiones.

Por lo tanto, primero clone un repositorio (que inicialmente verifica la última versión), luego verifique la versión que realmente desea.

Puede verificar la confirmación en función del hash.

git checkout afe52 

También puede pagar el pedido basado en la fecha (en lugar de buscar el hash), por ejemplo:

git checkout '[email protected]{1979-02-26 18:30:00}' 
git checkout @{14.days.ago} 

Para comprobar las confirmaciones puede pago y envío, utilice git log.

+1

¿Qué pasa si hay miles de confirmaciones? ¿Cuál es la forma más rápida de ver todos los lanzamientos etiquetados? Diga por cosas como la versión 1, 2, 3, etc. – anon58192932

+1

@ anon58192932 para ver todas las etiquetas, puede usar 'git tag' y para ver los detalles de esa etiqueta específica, puede usar' git cat-file tag TAG_NAME' para ejemplo, podría usar 'git cat-file tag v4.4.7' en el repositorio del nodo para mostrarme la cadena de confirmación' 0974fc6a25c343744235331eb20d31f6412ff7e1'. :) – Dobz

Cuestiones relacionadas