Historial y cambios

GitBeginner
Practicar Ahora

Introducción

En los laboratorios anteriores, aprendió a inicializar una «máquina del tiempo» (un repositorio de Git) y a guardar su primera instantánea. Sin embargo, un proyecto no es estático: evoluciona. Usted corrige errores, agrega funciones y actualiza la documentación.

Git es excelente para realizar un seguimiento de esta evolución. Le permite:

  1. Inspeccionar cambios: ver exactamente qué líneas modificó antes de guardarlas.
  2. Revisar el historial: consultar todas las instantáneas que ha guardado para saber quién hizo cada cambio y cuándo.

Este es el verdadero valor del control de versiones: no solo conservar copias de seguridad, sino también mantener un historial estructurado de cómo cambió un proyecto con el tiempo.

En este laboratorio, modificará un archivo, inspeccionará las diferencias exactas con git diff, guardará una nueva instantánea y, después, consultará el historial del proyecto con git log. Este es el ciclo básico de revisión que se utiliza constantemente en los flujos de trabajo reales con Git.

Modificar un archivo del proyecto

Comenzará con un repositorio que ya tiene una confirmación (la «Initial commit»). Simule que está realizando trabajo en este proyecto.

Vaya al directorio del proyecto:

cd /home/labex/project

Consulte el contenido actual de readme.txt:

cat readme.txt

Debería ver: Hello World

Modifique el archivo agregando una nueva línea al final. Añada una descripción sencilla:

echo "Git is a version control system" >> readme.txt

Verifique que el archivo haya cambiado:

cat readme.txt

Salida:

Hello World
Git is a version control system

Git ha detectado que readme.txt es diferente de la versión almacenada en la última instantánea. Ahora el archivo se considera Modified.

Inspeccionar cambios con Git Diff

Antes de guardar su trabajo, es recomendable revisar exactamente qué cambió. Es como corregir un ensayo antes de entregarlo.

Git proporciona el comando diff para este propósito. Este comando compara el archivo del directorio de trabajo con el archivo de la última confirmación (instantánea).

Por lo tanto, git diff compara dos estados: lo que está guardado en el historial y lo que existe actualmente en el árbol de trabajo. Es una de las principales herramientas para revisar el trabajo antes de registrarlo de forma permanente.

Ejecute git diff para ver los cambios:

git diff

Analice la salida:

diff --git a/readme.txt b/readme.txt
index ...
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
 Hello World
+Git is a version control system
  • --- a/readme.txt: la versión original (antigua).
  • +++ b/readme.txt: la versión actual (nueva).
  • +Git is...: el signo más (+) indica una línea recién agregada. (Un signo menos - indicaría una línea eliminada).

Leer la salida de diff es una habilidad fundamental de Git porque muestra los cambios a nivel de línea. Muchos flujos de trabajo posteriores, como las revisiones de código, la aplicación de parches y las solicitudes de incorporación de cambios, se basan en la misma idea.

Este paso confirma que sus cambios son exactamente los que pretendía realizar.

Guardar cambios mediante Git Commit

Ahora que ha verificado los cambios, guarde una nueva instantánea. Recuerde el proceso de dos pasos: Stage (colocar el archivo en el muelle de carga) y Commit (tomar la instantánea).

Compruebe primero el estado:

git status

Verá readme.txt en rojo, debajo de «Changes not staged for commit».

Ponga el archivo en Stage:

git add readme.txt

Vuelva a comprobar el estado:

git status

Ahora readme.txt aparecerá en verde, debajo de «Changes to be committed».

Este es otro ejemplo de la separación que hace Git entre el contenido modificado y el contenido preparado. Un cambio puede existir en su archivo, pero hasta que lo prepare, no formará parte de la próxima confirmación candidata.

Realice el Commit de la instantánea con un mensaje claro:

git commit -m "Add description about Git"
  • -m: le permite escribir inmediatamente el mensaje de confirmación.
  • El mensaje debe identificar qué cambió.

¡Ahora ha guardado la segunda versión del historial de su proyecto!

Consultar el historial del proyecto

Ahora su repositorio tiene dos confirmaciones. Para ver la línea temporal del proyecto, utilice el comando git log. Este es su «libro de historial».

Consulte el registro completo:

git log

Examine la salida:

commit 8d3a1b2... (SHA Hash)
Author: Your Name <you@example.com>
Date:   Mon Oct 10 10:00:00 2023 +0000

    Add description about Git

commit 4f2b3c4... (SHA Hash)
Author: Your Name <you@example.com>
Date:   Mon Oct 10 09:00:00 2023 +0000

    Initial commit
  • SHA Hash: la cadena de identificación larga, por ejemplo, 8d3a.... Es una huella única de esa instantánea concreta.
  • HEAD: si aparece, es un puntero que indica dónde se encuentra actualmente.
  • Order: la confirmación más reciente siempre aparece arriba.

Estos hashes son fundamentales para que Git identifique el historial. En lugar de nombrar las confirmaciones con números secuenciales, Git utiliza identificadores basados en el contenido, de modo que cada instantánea tiene una referencia única.

Si es necesario, presione q para salir de la vista del registro.

Consultar un historial resumido

Cuando trabaja en un proyecto durante meses, el git log completo puede volverse demasiado largo y detallado. A veces solo necesita una lista resumida.

Git ofrece la opción --oneline para este propósito.

Ejecute el comando del registro resumido:

git log --oneline

Compruebe la salida:

8d3a1b2 Add description about Git
4f2b3c4 Initial commit

Esta vista muestra únicamente el Short Hash y el Commit Message, uno por línea. Es perfecta para revisar rápidamente lo que ocurrió recientemente.

Desafío:

Intente modificar readme.txt una vez más (agregue otra línea), confirme el cambio y vuelva a consultar git log --oneline. ¡Debería ver tres entradas!

Resumen

En este laboratorio, aprendió a gestionar el ciclo de vida de los cambios en un proyecto:

  1. Modificar: realizó cambios en un archivo.
  2. Inspeccionar: utilizó git diff para verificar esos cambios.
  3. Confirmar: guardó una instantánea permanente mediante git add y git commit.
  4. Revisar: exploró la línea temporal mediante git log y git log --oneline.

Estos cuatro comandos son el núcleo del uso diario de Git. Domínelos y habrá aprendido los conceptos básicos del control de versiones.