6 Registrar cambios

6.1 git status

Es el comando más usado en el día a día. Muestra tres cosas:

Conviene ejecutarlo con frecuencia, especialmente antes de un commit, para confirmar exactamente qué se va a registrar.

6.2 git add

Copia el contenido de uno o más archivos al índice, tal como se explicó en El índice.

git add archivo.txt

Prepara un archivo específico.

git add .

Prepara todos los cambios (nuevos, modificados, eliminados) del directorio actual y sus subdirectorios, respetando .gitignore.

git add -p

Recorre los cambios bloque por bloque, permitiendo elegir qué partes incluir.

6.3 git commit

Toma lo que hay en el índice y crea un nuevo objeto commit, con el commit actual (HEAD) como padre.

git commit

Abre el editor configurado para escribir el mensaje del commit.

git commit -m "mensaje"

Especifica el mensaje directamente, sin abrir el editor.

git commit -a

Prepara automáticamente todos los archivos que ya estaban siendo rastreados y tienen modificaciones, sin necesidad de git add previo. No incluye archivos nuevos sin rastrear.

6.3.1 Buenos mensajes de commit

Un mensaje de commit bien escrito tiene una primera línea corta (50 caracteres aproximadamente) que resume el cambio en modo imperativo ("Corrige el cálculo de totales", no "Corregido" ni "Corrigiendo"), seguida de una línea en blanco y, si hace falta, un cuerpo más detallado explicando el por qué del cambio, no solo el qué: el qué ya se puede ver en el diff.

6.4 git diff

Muestra diferencias de contenido entre dos puntos cualesquiera.

git diff

Directorio de trabajo contra el índice.

git diff --staged

Índice contra el último commit.

git diff HEAD

Directorio de trabajo contra el último commit, combinando ambas comparaciones anteriores.

git diff commit1 commit2

Diferencias entre dos commits cualesquiera, en cualquier orden.

git diff rama1..rama2

Diferencias entre las puntas de dos ramas.