Principal
/
Site Tools avanzado
/
Git
/
¿Cómo estructura GIT el contenido del repositorio?

¿Cómo estructura GIT el contenido del repositorio?

Un directorio .git tiene una estructura similar a la siguiente:

carpeta objects/

En este directorio, se almacenan los datos de los objetos Git – todo el contenido de los archivos que hayas insertado, tus commits, árboles (trees) y etiquetas de objeto.

  • carpetas objects/[0-9a-f][0-9a-f]

Un objeto recién creado se almacena en su propio archivo. Los objetos se colocan en 256 subdirectorios utilizando los dos primeros caracteres del nombre del objeto SHA1 para mantener el número de entradas de directorio en los propios objetos en un número manejable. Los objetos que se encuentran aquí a menudo se denominan objetos sueltos o desempaquetados.

  • carpeta objects/pack

En este directorio se encuentran archivos que almacenan muchos objetos en forma comprimida, junto con archivos index para permitir el acceso aleatorio a ellos.

  • carpeta objects/info

En este directorio se encuentra información adicional sobre el objeto almacenado.

carpeta refs

En los subdirectorios de este directorio se almacenan referencias. El comando git prune sabe preservar los objetos accesibles desde las referencias que se encuentran en este directorio y sus subdirectorios.

  • carpeta refs/heads/

Contiene objetos commit.

  • carpeta refs/tags/

Contiene cualquier nombre de objeto.

  • carpeta refs/remotes/

Contiene objetos commit de ramas copiadas de un repositorio remoto.

archivo packed-refs

El archivo consiste en packed heads y etiquetas. Es útil para un acceso eficiente al repositorio.

archivo HEAD

Este archivo es una referencia simbólica a la rama donde te encuentras en cada momento. Esto le indica a Git qué padre usar en tu siguiente commit.

archivo config

Este es el archivo de configuración principal de Git. Mantiene opciones de Git específicas para tu proyecto, como remotos, configuraciones push, seguimiento (track) de ramas y más. Tu configuración se cargará primero desde este archivo, luego desde el archivo ~/.gitconfigfile y luego desde el archivo /etc/gitconfig, si existen.

branches

Una forma obsoleta de almacenar abreviaturas que se utilizarán para especificar una URL para git fetch, git pull y git push. Este mecanismo es un legado y es improbable que se encuentre en los repositorios modernos.

carpeta hooks

Este directorio contiene scripts de shell que se ejecutan después de ejecutar los comandos Git correspondientes. Por ejemplo, después de que ejecutes un commit, Git tratará de ejecutar el script post-commit.

archivo index

El index de GIT se utiliza como un área de preparación entre tu directorio de trabajo y tu repositorio. Puedes utilizar el index para crear un conjunto de cambios que desees guardar juntos. Cuando creas un commit, lo que se guarda es lo que está actualmente en el index, no lo que está en tu directorio de trabajo. Es un archivo binario que contiene una lista ordenada de rutas, cada una con permisos y el SHA-1 de un objeto blob.

carpeta info

Información adicional sobre el repositorio se registra en este directorio.

carpeta remotes

Esta carpeta contiene abreviaturas para URL y refnames predeterminados para usar al interactuar con repositorios remotos a través de los comandos git fetchgit pullgit push. Este mecanismo es un legado y es improbable que se encuentre en los repositorios modernos.

carpeta logs

Almacena los cambios realizados en refs en el repositorio.

  • carpeta logs/refs/heads/

Registra todos los cambios realizados en los diferentes tips de rama.

  • carpeta logs/refs/tags/

Registra todos los cambios realizados en las diferentes etiquetas.

carpeta modules

Contiene los repositorios git de los submódulos.

carpeta worktrees

Contiene datos administrativos de árboles de trabajo vinculados. Cada subdirectorio contiene la parte relacionada con el árbol de trabajo de un árbol de trabajo vinculado.

Comparte este artículo