Accueil
/
Avancé Site Tools
/
Git
/
Comment Git structure le contenu du référentiel ?

Comment Git structure le contenu du référentiel ?

Un répertoire .git a une structure similaire à la suivante:

objets/ dossier

Dans ce répertoire, les données de vos objets Git sont stockées – tout le contenu des fichiers que vous avez déjà archivés, vos commits, arborescences et objets tag.

  • objets/[0-9a-f][0-9a-f] dossiers

Un objet nouvellement créé est stocké dans son propre fichier. Les objets sont placés dans 256 sous-répertoires en utilisant les deux premiers caractères du nom d’objet SHA1 pour garder le nombre d’entrées de répertoire dans les objets lui-même à un nombre gérable. Les objets trouvés ici sont souvent appelés objets déballés ou en vrac.

  • dossier objets/pack

Les fichiers qui stockent de nombreux objets sous forme compressée, ainsi que les fichiers d’index permettant d’y accéder de manière aléatoire, se trouvent dans ce répertoire.

  • dossier objets/info

Les informations supplémentaires sur l’objet stocké sont placées dans ce répertoire.

dossier de références

Les références sont stockées dans des sous-répertoires de ce répertoire. La commande git prune sait préserver les objets accessibles à partir des références trouvées dans ce répertoire et ses sous-répertoires.

  • refs/heads/ dossier

Contient des objets commit.

  • refs/tags/ dossier

Contient n’importe quel nom d’objet.

  • refs/remotes/ dossier

Contient les objets commit des branches copiées depuis un référentiel distant.

fichier-refs compressé

Le fichier est constitué d’en-têtes et d’étiquettes empaquetés. C’est utile pour un accès efficace au référentiel.

Fichier HEAD

Ce fichier contient une référence à la branche sur laquelle vous vous trouvez. Ceci indique à Git ce qu’il faut utiliser comme parent de votre prochain commit.

fichier de configuration

Ceci est le fichier de configuration principal de Git. Il conserve les options Git spécifiques à votre projet, telles que vos télécommandes, vos configurations push, vos branches de suivi, etc. Votre configuration sera chargée d’abord depuis ce fichier, puis depuis un fichier ~/.gitconfig et enfin depuis un fichier /etc/gitconfig , s’ils existent.

succursales

Un moyen obsolète de stocker des raccourcis à utiliser pour spécifier une URL vers git fetch , git pull et git push . Ce mécanisme est un héritage et il est peu probable qu’il soit trouvé dans les référentiels modernes.

dossier hooks

Ce répertoire contient les scripts shell qui sont appelés après les commandes Git correspondantes. Par exemple, après avoir exécuté une validation, Git essaiera d’exécuter le script de post-validation.

fichier d’index

L’index GIT est utilisé comme une zone de transit entre votre répertoire de travail et votre référentiel. Vous pouvez utiliser l’index pour construire un ensemble de modifications que vous voulez valider ensemble. Quand vous créez un commit, ce qui est commité est ce qui est actuellement dans l’index, pas ce qui est dans votre répertoire de travail. C’est un fichier binaire contenant une liste triée de noms de chemins, chacun avec des permissions et le SHA-1 d’un objet blob.

dossier info

Des informations supplémentaires sur le référentiel sont enregistrées dans ce répertoire.

dossier des télécommandes

Ce dossier contient des raccourcis pour les URL et les noms de référence par défaut à utiliser lors de l’interaction avec des référentiels distants via les commandes git fetch , git pull et git push . Ce mécanisme est un héritage et il est peu probable qu’il soit trouvé dans les référentiels modernes.

dossier des journaux

Stocke les modifications apportées aux références dans le référentiel.

  • dossier logs/refs/heads/

Enregistre toutes les modifications apportées aux différentes extrémités des branches

  • dossier logs/refs/tags/

Enregistre toutes les modifications apportées aux différentes étiquettes.

dossier modules

Contient les git-repositories des sous-modules.

dossier worktrees

Contient les données administratives des arbres de travail liés. Chaque sous-répertoire contient la partie liée à l’arbre de travail d’un arbre de travail lié.

Partager cet article