lab 12 Obteniendo Versiones Antiguas

Metas

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.

Tabla de Contenidos