lab 12 Obteniendo Versiones Antiguas
Metas
- Aprender a hacer checkout de cualquier snapshot previo en el directorio de trabajo.
Regresar en la historia es muy fácil. El comando checkout copiará cualquier snapshot de el repositorio al directorio de trabajo actual.
Obtener el hash de versiones previas 01
Ejecute:
git hist
Nota: ¿No olvidó definir el alias hist
en su archivo .gitconfig
, verdad? De lo contrario, revise el laboratorio de Alias.
Salida:
$ git hist * 4054321 2012-03-06 | Added a comment (HEAD, master) [Jim Weirich] * 1b754e9 2012-03-06 | Added a default value [Jim Weirich] * 3053491 2012-03-06 | Using ARGV [Jim Weirich] * 3cbf83b 2012-03-06 | First Commit [Jim Weirich]
Examine la salida del log output y busque el hash de el primer Commit. Debe ser la última línea de la salida de git hist
. Use el último código hash (con los primeros 7 caracteres será suficiente) en el comando a continuación. Después revise el contenido del archivo hello.rb .
Ejecute:
git checkout <hash> cat hello.rb
Nota: Los comandos dados son comandos Unix y sirven de igual forma tanto en equipos Mac y Linux. Desafortunadamente, los usuarios de Windows tendrán que trasladarlo a sus comandos nativos.
Nota: Muchos comandos dependen del valor del hash en el repositorio. Debido a que los valores hash serán diferentes a los míos, donde sea que vea algo como <hash> o <treehash> en la línea de comandos, sustituyalo por el hash correspondiente en su repositorio.
Debería ver …
Salida:
$ git checkout 3cbf83b Note: checking out '3cbf83b'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 3cbf83b... First Commit $ cat hello.rb puts "Hello, World"
La salida del comando checkout
explica la situación bastante bien. Las versiones antiguas de git se quejarán de no estar en el branch local. En cualquier caso, no se preocupe sobre eso por ahora.
Observe que el contenido del archivo hello.rb es el contenido original.
Regrese a la última versión en el branch master 02
Ejecute:
git checkout master cat hello.rb
Debería ver …
Salida:
$ git checkout master Previous HEAD position was 3cbf83b... First Commit Switched to branch 'master' $ cat hello.rb # Default is "World" name = ARGV.first || "World" puts "Hello, #{name}!"
‘master’ es el nombre del branch actual. Al hacer checking out por nombre, se toma la última versión del branch.