Skip to content

Commit

En Git, un commit es una de las operaciones fundamentales que permite a los desarrolladores guardar una instantánea de todos los cambios realizados en el repositorio. Cada commit registra una imagen precisa del estado de los archivos en el proyecto en un momento dado, permitiendo así a los desarrolladores crear un historial detallado de su trabajo. Esta pequeña clase te ayudará a entender mejor qué es un commit, cómo se realiza y por qué es importante en el control de versiones con Git.

  • Instantánea de Cambios: Un commit en Git captura el estado exacto de tu directorio de trabajo en un momento específico. Piensa en ello como una fotografía de tus archivos y carpetas.

  • Identificador Único: Cada commit tiene un identificador único (SHA-1 hash) que permite a Git mantener un registro preciso de todos los cambios que ocurren en el repositorio.

  • Mensaje de Commit: Cada commit debe ir acompañado de un mensaje que describe los cambios realizados. Este mensaje es crucial para mantener un historial de proyecto claro y útil.

Para ilustrar cómo funcionan los commits en Git, veamos un flujo de trabajo básico con ejemplos:

  1. Hacer Cambios en tu Proyecto

    • Imagina que has modificado un archivo llamado index.html y has creado un nuevo archivo style.css.
  2. Verificar los Cambios

    • Antes de hacer un commit, puedes ver los cambios que has realizado con git status. Este comando te mostrará qué archivos han sido modificados y están listos para ser añadidos al commit.
  3. Añadir Cambios al Área de Staging

    • Para incluir cambios en tu próximo commit, primero debes añadirlos al área de staging con git add.
    • Por ejemplo, git add index.html style.css prepara estos dos archivos.
  4. Crear el Commit

    • Con los cambios añadidos al área de staging, realizas el commit con git commit. Es importante incluir un mensaje significativo: git commit -m "Actualizar la página principal y añadir estilos CSS".
    • Este mensaje de commit ayuda a otros (y a ti mismo en el futuro) a entender qué se hizo y por qué.

En Alebat los mensajes no son texto libre: siguen la convención Conventional Commits y los valida commitlint en un hook de Git, que aborta el commit si el mensaje no cumple el formato tipo(ámbito): descripción. El ámbito es obligatorio.

  • git commit -m "fix(contacto): corregido el typo del formulario"
  • git commit -m "feat(checkout): añadida la función de cálculo de impuestos"
  • git commit -m "perf(assets): optimizadas las imágenes de la home"
  • git commit -m "build(deps): actualizadas las dependencias a sus últimas versiones"

La lista completa de tipos permitidos, los ejemplos de mensajes rechazados y el motivo de cada regla están en Commitlint.

Los commits son esenciales por varias razones:

  • Historial de Proyecto: Permiten rastrear el desarrollo del proyecto a lo largo del tiempo, viendo qué cambios se hicieron y por qué.

  • Colaboración: Facilitan la colaboración entre múltiples desarrolladores, permitiendo que cada uno vea y comprenda el trabajo del otro.

  • Control de Versiones: Permiten revertir el proyecto a un estado anterior si se introduce un error o un problema.