lab 9 Cambios, no archivos

Metas

Muchos sistemas de control de versiones trabajan con archivos. Se agrega un archivo al control de versiones y el sistema rastreará los cambios al archivo al que apunta.

Git se enfoca en los cambios al archivo en vez del archivo mismo. Cuando escribe git add file, no le está diciendo a git que agregue el archivo al repositorio. En vez de eso, se le dice a git que debería notar el estado actual de ese archivo al que se le hará un Commit después.

Intentaremos explorar esta diferencia en este laboratorio.

Primer cambio: Permitir un nombre por defecto 01

Cambie el programa “Hola, Mundo” para tener un valor por defecto si no se proporciona el argumento en la línea de comando.

Archivo: hello.rb

name = ARGV.first || "World"

puts "Hello, #{name}!"

Agregue este cambio 02

Ahora agregue este cambio al área de Staging de git.

Ejecute:

git add hello.rb

Segundo cambio: Agregue un comentario 03

Ahora agregue un comentario al programa “Hola, Mundo”.

Archivo: hello.rb

# Default is "World"
name = ARGV.first || "World"

puts "Hello, #{name}!"

Revise el estatus actual 04

Ejecute:

git status

Deberá ver …

Salida:

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	modified:   hello.rb
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   hello.rb
#

Observe cómo se lista hello.rb dos veces en el estatus. El primer cambio (agregando un valor por defecto) está en Stage y listo para el Commit. El segundo cambio (agregando un comentario) no está en Stage. Si realizara el Commit ahora mismo, el comentario no será almacenado en el repositorio.

Intentemos eso.

Realizando Committ 05

Confirme el cambio en el área de Stage (el valor por defecto),y revise de nuevo es estatus.

Ejecute:

git commit -m "Added a default value"
git status

Debería ver …

Salida:

$ git commit -m "Added a default value"
[master 1b754e9] Added a default value
 1 files changed, 3 insertions(+), 1 deletions(-)
$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   hello.rb
#
no changes added to commit (use "git add" and/or "git commit -a")

El comando estatus nos dice que hello.rb tiene cambios no guardados, pero ya no está en el área de Staging.

Agregue el segundo cambio 06

Ahora agregue el segundo cambio al área de Staging, después ejecute git status.

Ejecute:

git add .
git status

Nota: Usamos el directorio actual (‘.’) como el archivo a agregar. Esto es un atajo realmente conveniente para agregar todos los cambios en los archivos en el directorio actual. Pero como esto agrega todo, es una realmente buena idea revisar el estatus antes de realizar un "add .", sólo para asegurarse de no agregar archivos que no tenía intenciones de agregar.

Deseaba repasar el truco de “add .” , pero continuaré agregando archivos explícitamente en el resto del tutorial sólo para estar seguros.

Deberá ver …

Salida:

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	modified:   hello.rb
#

Ahora el segundo cambio está en el Stage y listo para el Commit.

Commit del segundo cambio 07

Ejecute:

git commit -m "Added a comment"

Tabla de Contenidos