Dominando Git y los Sistemas de Control de Versiones
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
con un tamaño de 3,48 KB
Sistema de control de versiones
Sistema de control de versiones: herramienta que guarda el historial de cambios realizados en los archivos de un proyecto. Permite:
- Volver a versiones anteriores.
- Saber quién hizo qué cambio y cuándo.
- Facilitar el trabajo en equipo con múltiples desarrolladores.
Conceptos fundamentales
- Repositorio: lugar donde se almacena el historial de cambios.
- Revisión: cada una de las versiones guardadas.
- Etiqueta (Tag): nombre asignado a una versión importante.
- Tronco (Trunk): línea principal de desarrollo.
- Rama (Branch): línea paralela de desarrollo, útil para nuevas funcionalidades o correcciones.
- Merge (Fusión): unión de ramas al tronco principal.
- Conflicto: ocurre cuando dos cambios son incompatibles y deben resolverse manualmente.
Operaciones comunes
- Checkout: obtener una versión del repositorio.
- Commit: guardar cambios localmente con un mensaje descriptivo.
- Export: copiar archivos sin control de versiones.
- Import: subir archivos nuevos al repositorio.
- Update: descargar los cambios más recientes.
- Merge: combinar diferentes líneas de desarrollo.
Git: El estándar distribuido
Git: sistema de control de versiones distribuido, gratuito y de código abierto. Cada desarrollador tiene una copia completa del proyecto, por lo que no depende de un servidor central.
Fundamentos de Git
- Modelo de datos: Git guarda una instantánea del estado de cada archivo en cada versión. Si un archivo no cambia, se guarda un enlace a la versión anterior, no una copia nueva.
- Arquitectura distribuida: cada equipo tiene una copia completa del repositorio, no depende de un servidor central. Permite trabajar rápido y sin conexión.
- Integridad de los datos: usa checksums (SHA-1) para asegurar que los archivos no se modifiquen sin que el sistema lo detecte. El contenido se guarda usando el valor hash, no el nombre del archivo.
Estados de los archivos
- Modificado (Modified): cambiado, pero no preparado para confirmar.
- Preparado (Staged): listo para ser confirmado.
- Confirmado (Committed): guardado de forma permanente en el historial.
Estructura del proyecto
- Directorio de Git: contiene la base de datos y el historial del proyecto.
- Directorio de trabajo: archivos actuales del proyecto.
- Área de preparación (Staging area): zona intermedia antes del commit.
Flujo de trabajo
- Crear o clonar el repositorio (checkout).
- Modificar archivos en el directorio de trabajo.
- Preparar los archivos en el área de preparación.
- Confirmar (commit) los cambios para guardarlos de forma permanente.