HDP115

Hacer commit

Aprende a confirmar cambios en tu repositorio Git utilizando el comando git commit, sus opciones y buenas prácticas para crear un historial de proyecto claro y útil.

CE

Cristian Escalante

Última actualización: 19 de abril de 2025

git
control de versiones
desarrollo

Hacer commit

Una vez que has añadido tus cambios al área de preparación (staging area) con git add, el siguiente paso es confirmar estos cambios en el repositorio mediante un commit. Un commit es como una instantánea de tu proyecto en un momento específico, que registra quién hizo los cambios, cuándo se hicieron y por qué.

¿Qué es un commit?

Un commit en Git representa:

  1. Una instantánea completa de tu proyecto en un momento determinado
  2. Un punto en la historia al que puedes volver si es necesario
  3. Un registro de quién hizo cambios, cuándo y por qué
  4. Un conjunto de modificaciones relacionadas lógicamente

Cada commit tiene un identificador único (hash SHA-1) que permite referenciarlo de forma precisa.

El comando git commit

El comando básico para crear un commit es:

git commit

Sin embargo, este comando abrirá un editor de texto para que escribas el mensaje del commit. Para usuarios nuevos o para commits sencillos, es común usar la opción -m para proporcionar el mensaje directamente:

git commit -m "Mensaje descriptivo del commit"

Anatomía de un buen mensaje de commit

Un buen mensaje de commit debe:

  1. Ser conciso pero informativo
  2. Comenzar con un verbo en imperativo (por ejemplo: "Añade", "Corrige", "Actualiza")
  3. Explicar el qué y el por qué, no el cómo
  4. Limitarse a 50-72 caracteres en la primera línea
  5. Incluir detalles adicionales en líneas subsiguientes si es necesario

Ejemplo de un buen mensaje de commit:

git commit -m "Corrige error de validación en formulario de registro

- Soluciona el problema con la validación de correo electrónico
- Mejora los mensajes de error mostrados al usuario
- Añade pruebas para prevenir regresiones"

Opciones comunes de git commit

Commit con mensaje en una sola línea

git commit -m "Mensaje del commit"

Commit saltándose el staging area

Si quieres hacer commit de todos los archivos modificados que Git ya está rastreando, sin tener que añadirlos primero al staging area:

git commit -a -m "Mensaje del commit"
# o
git commit -am "Mensaje del commit"

Esta opción es útil para cambios rápidos, pero ten cuidado porque incluirá todos los archivos modificados que Git ya esté rastreando.

Modificar el último commit

Si acabas de hacer un commit y te das cuenta de que olvidaste incluir algo o quieres cambiar el mensaje:

# Añade los cambios olvidados al staging area
git add archivo-olvidado.txt

# Modifica el último commit
git commit --amend

Si solo quieres cambiar el mensaje del último commit:

git commit --amend -m "Nuevo mensaje para el último commit"

Importante: No uses --amend en commits que ya hayas compartido con otros (pushed), ya que reescribe la historia.

Commit vacío

En ocasiones puede ser útil crear un commit sin cambios, por ejemplo para activar CI/CD:

git commit --allow-empty -m "Commit vacío para activar CI"

Firmar commits

Para añadir una firma GPG a tu commit (útil para verificar la autenticidad):

git commit -S -m "Commit firmado con GPG"

Verificar commits

Ver el último commit

git show

Ver un commit específico

git show <hash-del-commit>

Ver el historial de commits

git log

Para un formato más compacto:

git log --oneline

Buenas prácticas para commits

1. Haz commits atómicos

Cada commit debe representar un cambio lógico único. Esto facilita:

  • Entender qué hace cada commit
  • Revertir cambios específicos si es necesario
  • Revisar el código de manera más efectiva

2. Escribe mensajes de commit significativos

Un buen mensaje de commit debe responder a estas preguntas:

  • ¿Qué cambió?
  • ¿Por qué se hizo el cambio?

Estructura recomendada:

<tipo>: <descripción corta>

<descripción detallada opcional>

<referencias a issues/tickets si aplica>

Ejemplos de tipos comunes:

  • feat: Nueva característica
  • fix: Corrección de error
  • docs: Cambios en documentación
  • style: Cambios de formato (espacios, indentación)
  • refactor: Refactorización de código
  • test: Añadir o modificar pruebas
  • chore: Tareas de mantenimiento

3. Haz commits con frecuencia

Haz commits pequeños y frecuentes en lugar de grandes commits que contengan muchos cambios no relacionados. Esto:

  • Facilita la revisión de código
  • Reduce conflictos de merge
  • Permite un seguimiento más granular del desarrollo

4. Nunca hagas commit de código roto

Asegúrate de que tu código compila y pasa las pruebas antes de hacer commit. Si necesitas guardar trabajo en progreso, considera usar git stash.

5. No hagas commit de archivos generados o temporales

Usa .gitignore para excluir:

  • Archivos de compilación
  • Dependencias (node_modules, vendor, etc.)
  • Archivos de configuración local
  • Archivos temporales o de caché

Flujos de trabajo comunes con commits

Flujo de trabajo básico

# Editar archivos
echo "Nueva función" > archivo.js

# Ver qué ha cambiado
git status

# Añadir cambios al staging
git add archivo.js

# Crear un commit
git commit -m "Implementa nueva función de búsqueda"

Dividir cambios en múltiples commits

# Has modificado varios archivos
git add archivo1.js
git commit -m "Refactoriza clase de autenticación"

git add archivo2.js archivo3.js
git commit -m "Implementa validación de formularios"

Corregir un commit reciente

# Olvidaste añadir un archivo
git add archivo-olvidado.js
git commit --amend --no-edit  # Mantiene el mismo mensaje

# O si quieres cambiar el mensaje
git commit --amend -m "Nuevo mensaje mejorado"

Errores comunes y soluciones

Mensaje de commit incorrecto

Problema: Escribiste un mensaje de commit con errores o poco claro.

Solución: Si el commit aún no ha sido compartido (pushed), usa git commit --amend para corregirlo.

Commit en la rama equivocada

Problema: Hiciste un commit en la rama equivocada.

Solución:

  1. Crea una nueva rama donde debería estar el commit: git branch rama-correcta
  2. Vuelve a la rama original: git checkout rama-original
  3. Haz un reset para deshacer el commit: git reset HEAD~1 --hard
  4. Cambia a la rama correcta: git checkout rama-correcta

Commit con archivos no deseados

Problema: Incluiste archivos que no deberían estar en el repositorio.

Solución:

  1. Si no has compartido el commit: git rm --cached archivo-no-deseado
  2. Añade el archivo a .gitignore
  3. Haz un nuevo commit o usa --amend

Conclusión

El comando git commit es fundamental en el flujo de trabajo de Git, ya que permite registrar cambios en el historial del repositorio. Crear buenos commits con mensajes claros y descriptivos es esencial para mantener un historial de proyecto útil y comprensible.

Dominar las diferentes opciones de git commit y seguir buenas prácticas te ayudará a mantener un repositorio organizado y facilitará la colaboración con otros desarrolladores. Recuerda que cada commit cuenta una parte de la historia de tu proyecto, así que asegúrate de que sea una historia clara y coherente.

Añadir archivos al Staging Area
Aprende a utilizar el comando git add para preparar tus camb...
Ver el historial de cambios
Aprende a utilizar el comando git log y sus variantes para e...
Referencias
Git. Git - git-commit Documentation. https://git-scm.com/docs/git-commit
Chris Beams. How to Write a Git Commit Message. https://chris.beams.io/posts/git-commit/
Scott Chacon and Ben Straub. Pro Git Book - Recording Changes to the Repository. https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository

Conceptos Básicos de HTML

Aprende los conceptos básicos de HTML

Conceptos Básicos de CSS

Aprende los conceptos básicos de CSS

Conceptos Básicos de JavaScript

Aprende los conceptos básicos de JavaScript

Conceptos Básicos SQL

Aprende los conceptos básicos de SQL

Conceptos Básicos de Python

Aprende los conceptos básicos de Python

Conceptos Básicos de UML

Aprende los conceptos básicos de UML

Refuerzo Academico de Herramientas de Productividad 2025