viernes, 17 de diciembre de 2010

Obtener el codigo del pasado

Es natural encontrarse con situaciones en las que necesitemos ver al pasado y obtener todo el trabajo de una version, por ejemplo, de hace dos semanas.
En ese caso lo primero sera localizar esa version en el historial, usando git-log

--format=oneline indica que solo se muestre una linea por commit y HEAD~20..HEAD indica el rango de commits que se van a mostrar, que indica que se muestren los ultimos 20 commits

Ahora supongamos que queremos ver el contenido del commit que dice "evalhook v0.1.0", observamos que el hash correspondiente a ese commit que es 34f8b706... y ejecutamos


Observar que no hubo necesidad de poner todo el SHA (el choclo hexadecimal) completo con poner la version abreviada ya alcanza, siempre y cuando no se produzcan ambigueadades (si se especifica una abreviacion demasiado corta o si existe una cantidad inmensa de commits en el repositorio)

Ahora, con este comando, se trajo todo el contenido que estaba en esa version para que sea examinado o para crear branches a partir de el, para volver a trabajar en la ultima version, hay que volver con el comando:


NOTA: Lo que explique es comun usarlo cuando se examina el repositorio para analizar codigo anterior y otras cosas, pero para navegar por releases (por ej. la version 0.1.0 del proyecto) es mas practico usar tags

NOTA 2: La advertencia que aparece cuando se hace el primer checkout para volver al commit pasado aparece porque se cambio a un "detached HEAD", es decir, que no se esta trabajando en ningun branch y si bien se puede commitear desde ese punto, esos commits no perteneceran a ningun branch (salvo que se cree uno). En el ultimo commit, se "re-attacheo" el HEAD al branch master para que los commits que se hagan pertenezcan a ese branch

No hay comentarios:

Publicar un comentario