Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
15.01.2025

Estructura del repositorio Git

Estructura maestra de repositorios Git en su VPS AlexHost

¿Por qué usar Git en AlexHost? Git es la piedra angular del control de versiones, y alojar tus repositorios en un VPS de AlexHost te da control total con acceso root, almacenamiento NVMe ultrarrápido y entornos seguros protegidos contra DDoS. Tanto si eres un desarrollador en solitario como si gestionas un equipo, el VPS flexible de AlexHost garantiza que tus flujos de trabajo Git funcionen sin problemas. Esta guía desglosa la estructura de un repositorio Git y cómo aprovecharlo en tu servidor AlexHost.


1. Directorio de trabajo

El directorio de trabajo es el lugar donde residen los archivos reales de tu proyecto. Cuando clonas un repositorio Git, obtienes una copia de todos los archivos rastreados, que se colocan en tu directorio de trabajo. Esta es el área donde editas activamente los archivos, haces cambios y añades nuevo contenido

  • Archivos modificados: Cualquier archivo que edites en tu directorio de trabajo se considerará modificado hasta que lo escenifiques o restablezcas los cambios.
  • Archivos sin seguimiento: Los archivos que aún no son rastreados por Git aparecerán en el directorio de trabajo como no rastreados hasta que sean preparados y confirmados.

2. Área de preparación (Índice)

El área de preparación (también llamada índice) es un lugar intermedio donde se recogen los cambios en los archivos antes de confirmarlos en el repositorio. Puedes añadir archivos o cambios al área de preparación usando el comando git add. Los cambios en el área de preparación formarán parte de la siguiente confirmación

  • Añadir cambios al área de preparación
    git add <archivo>
  • Ver el área de preparación: Puedes ver lo que hay en el área de preparación usando git status.

3. Directorio Git (carpeta .git)

El directorio Git, almacenado en la carpeta .git, es el corazón de cualquier repositorio Git. Contiene toda la información esencial sobre la historia, configuración y estado actual de tu proyecto. Este directorio se crea automáticamente cuando inicializas o clonas un repositorio Git

Componentes clave del directorio .git:

  • HEAD: Un archivo que apunta al commit actual en tu rama.
  • Ramas: Contiene información sobre las ramas del repositorio.
  • Objetos: Almacena todos los objetos como commits, blobs (datos de ficheros) y árboles (estructura de directorios).
  • Referencias: Contiene referencias a confirmaciones, incluyendo cabezas (ramas), etiquetas y ramas de seguimiento remoto.
  • Config: El archivo de configuración para su repositorio local, donde se almacenan ajustes como remotos o información de usuario.
  • Registros: Almacena los registros de todas las actividades, como confirmaciones, transferencias y rebases.
  • Ganchos: Scripts personalizados que pueden desencadenar acciones antes o después de ciertos eventos Git (por ejemplo, commit, push).

4. Historial de confirmaciones

Cada confirmación es una instantánea de tu repositorio en un momento específico. Una confirmación incluye cambios en los archivos junto con metadatos como el mensaje de confirmación, el autor y la marca de tiempo. Los commits forman la historia de su proyecto

  • Las confirmaciones se almacenan en el directorio .git/objects.
  • Cada commit apunta al commit anterior (excepto el primero), formando una cadena enlazada que puede visualizarse como la historia del proyecto.
git log # Ver el historial de confirmaciones

5. Ramas

Una rama es un puntero a una confirmación específica, permitiéndote trabajar en diferentes versiones de tu proyecto simultáneamente. Por defecto, Git comienza con una rama llamada main (o master en versiones antiguas)

  • Puntero a la rama: Las ramas son simplemente punteros a una confirmación. Crear una nueva rama significa crear un puntero a la confirmación actual, permitiéndote hacer nuevas confirmaciones en esa rama sin afectar a otras ramas.
git branch <nombre-de-la-rama> # Crear una nueva rama git checkout <nombre-de-la-rama> # Cambiar a una rama existente
  • HEAD: El puntero HEAD en Git indica la rama o confirmación actual en la que estás trabajando. Normalmente apunta al último commit de tu rama actual.

6. Etiquetas

Las etiquetas son referencias a puntos específicos en tu historial de Git, a menudo utilizadas para marcar versiones (por ejemplo, v1.0, v2.0). A diferencia de las ramas, las etiquetas no se actualizan con los nuevos commits

  • Etiquetas ligeras: Son simples punteros a una confirmación, similares a una rama.
  • Etiquetas anotadas: Contienen metadatos adicionales, como el nombre del etiquetador, la fecha y un mensaje de etiqueta.
git tag v1.0 # Crear una etiqueta ligera git tag -a v1.0 -m “Version 1.0” # Crear una etiqueta anotada

7. Remotas

Una remota en Git es una referencia a una copia de tu repositorio que está alojada en otro lugar, a menudo en plataformas como GitHub, GitLab o Bitbucket. Las remotas se utilizan para la colaboración, permitiéndote enviar cambios o extraer cambios de otras copias del repositorio

  • Origen: Por defecto, el repositorio remoto primario se llama origen.
git remote add origin <url> # Añadir un repositorio remoto git fetch origin # Obtener cambios del remoto git push origin main # Enviar cambios a la rama remota principal

8. Objetos en Git

El directorio de objetos de Git (.git/objects) contiene los cuatro tipos de objetos principales que componen el historial del repositorio

  • Blob: Almacena el contenido real de un archivo.
  • Árbol: Representa un directorio, asignando nombres de archivo a objetos blob y subdirectorios (otros objetos árbol).
  • Confirmación: Almacena metadatos sobre cada cambio (autor, fecha, mensaje) y apunta a un objeto de árbol.
  • Etiqueta: Apunta a un commit y almacena información sobre el etiquetador y el mensaje (en el caso de etiquetas anotadas).

9. Ganchos

Git te permite definir scripts personalizados (hooks) que pueden activarse en varias etapas del flujo de trabajo de Git. Estos scripts pueden ejecutarse automáticamente después o antes de eventos como confirmar, enviar o fusionar. Los hooks pueden reforzar la calidad del código, ejecutar pruebas o activar procesos CI/CD. Los hooks se almacenan en el directorio .git/hooks/

  • Gancho pre-commit: Se ejecuta antes de crear una confirmación.
  • Gancho post-commit: Se ejecuta después de crear una confirmación.

10. Registros

Git almacena registros de todas las acciones realizadas en el repositorio, como confirmaciones, revisiones, fusiones y reversiones. Estos registros ayudan a depurar y revisar las acciones realizadas en el repositorio

  • Git Reflog: Mantiene un registro de todos los cambios realizados en el puntero HEAD, permitiéndole recuperarse de acciones como el reseteo de una rama.
git reflog # Ver el reflog para ver las acciones recientes

Resumen de la estructura del repositorio Git

  • Directorio de trabajo: Contiene archivos y directorios en su estado actual.
  • Área de preparación (Índice): Donde se almacenan los cambios antes de confirmarlos.
  • Directorio Git (.git): Contiene los datos principales, incluidos los objetos, la configuración y los registros.
  • Comisiones: Registro de cambios con metadatos, que forman el historial del proyecto.
  • Ramas: Punteros a commits específicos que permiten el desarrollo paralelo.
  • Etiquetas: Referencias con nombre a commits específicos, normalmente para marcar releases.
  • Remotas: Referencias a repositorios alojados en otros lugares para la colaboración.
  • Objetos: Los componentes centrales de Git, incluyendo blobs, árboles y commits.

Comprendiendo esta estructura, podrás navegar y gestionar tu repositorio Git de forma efectiva, asegurando una colaboración fluida y el control de versiones a lo largo del desarrollo de tu proyecto.

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills