GIT: Sobre el Control de Versiones

  • ¿Qué es un control de versiones (VCS)?
    • Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante
  • ¿Cómo maneja GIT sus datos?
    • Git maneja sus datos como un conjunto de copias instantáneas de un sistema de archivos miniatura. Cada vez que confirmas un cambio, o guardas el estado de tu proyecto en Git, él básicamente toma una foto del aspecto de todos tus archivos en ese momento, y guarda una referencia a esa copia instantánea. Para ser eficiente, si los archivos no se han modificado Git no almacena el archivo de nuevo, sino un enlace al archivo anterior idéntico que ya tiene almacenado. Git maneja sus datos como una secuencia de copias instantáneas
  • Casi todas las operaciones son locales
    • Git sólo necesitan archivos y recursos locales para funcionar ya que trabaja la base de datos de forma local, no tiene retardo por red ya que no es necesario conectarse a un servidor para poder trabajar,ni a un VPN sino que trabajar y cuando tengas conexión mandas a actualizar.
  • GIT tiene integridad:
    • GIT verifica los archivos mediante una suma de comprobación (checksum) con un hash «SHA-1», esto significa que es imposible cambiar los contenidos de cualquier archivo o directorio sin que Git lo sepa.
  • Git maneja en los archivos 3 estados principales:
    • Confirmado (commited): significa que los datos están almacenados de manera segura en la base de datos
    • Modificado (modifed): significa que has modificado el archivo pero no los has guardado en la base de datos
    • Preparado (Staged): significa que has marcado un archivo modificado para que se confirme en el próximo commit.
  • El Directorio de trabajo «Working Area»: es una copia de una versión del proyecto
  • El área de preparación «Staging Area»: es una área donde se almacena información de lo que se va a guardar en el próximo commit.
  • Proceso genera sería así:
    • Modificar archivos
    • los subes al staged
    • Y los guardas con commit