Comprendre les objets Git : Commits, Arbres et Blobs en déta

"Comprenez mieux Git : découvrez la notion de commit et apprenez à naviguer dans votre code avec facilité. Découvrez comment utiliser les hash pour référencer v

Mahmoud DEVO
Mahmoud DEVO
December 28, 2025 3 min read
Comprendre les objets Git : Commits, Arbres et Blobs en déta

Comprendre les objets Git : commit, tree et blob

Les développeurs qui utilisent Git sont probablement familiers avec la commande git commit, mais qu’est-ce qui se passe vraiment lorsque nous créons un nouveau commit ? Dans cet article, nous allons explorer les objets Git en détail : commit, tree et blob. Nous allons découvrir comment ils sont structurés et comment ils contribuent à la gestion du code source.

Les objets Git

Git utilise un modèle de stockage objet pour conserver les informations relatives au code source. Chaque objet est identifié par une chaîne unique appelée hash, qui permet d’identifier et de réutiliser des données sans avoir à les stocker dans leur intégratité.

Le commit object

Le commit object est probablement l’objet type le plus familier aux utilisateurs Git, puisqu’il s’agit de ce qu’ils sont habitués à créer avec la commande git commit. Cependant, le commit n’entrepose pas directement les fichiers modifiés ou les données. Il contient principalement des métadonnées et des pointeurs vers d’autres objets qui contiennent les informations réelles du commit.

Un commit contient :

  • L’empreinte (hash) d’un tree
  • L’empreinte (hash) de la parente (parent)
  • Le nom et l’e-mail de l’auteur
  • Le nom et l’e-mail du commiter
  • Le message de commit

Voici un exemple de sortie pour afficher les informations d’un commit :

$ git cat-file -t 5bac93 
commit
$ git cat-file commit 5bac93 
tree 04d1daef...
parent b7850ef5...
author Geddy Lee <glee@rush.com> 1394791200 +0000
committer Neil Peart <npeart@rush.com> 1394791200 +0000

Premier commit !

Le tree object

Le tree object représente un dossier dans le système de fichiers traditionnel : des conteneurs imbriqués pour les fichiers ou d’autres dossiers. Un tree contient :

  • 0 ou plusieurs objets blob
  • 0 ou plusieurs objets tree

Vous pouvez lister les contenus d’un objet tree à l’aide de la commande git cat-file -p :

$ git cat-file -p 07b1a631 
100644 blob b91bba1b .gitignore
100644 blob cc0956f1 Makefile
040000 tree 92e1ca7e src ...

L’objet blob

L’objet blob contient les données binaires de n’importe quel fichier. Cela peut être du code source, un article de blog ou même une image PNG. Si vous avez l’empreinte (hash) d’un objet blob, vous pouvez afficher ses contenus :

$ git cat-file -p cae391ff 
Welcome to my project !
Cette est le fichier Readme.txt ...

Créer de nouveaux commits

La commande git commit crée plusieurs objets :

  1. Des objets blob et tree pour représenter le répertoire de projet
  2. Un nouveau objet commit avec les informations d’auteur, commiter et message de commit
  3. Met à jour la référence HEAD dans .git/HEAD vers l’empreinte du nouvel objet commit

Cela résulte en une nouvelle snapshot de votre projet étant ajoutée au Git qui est liée à l’état précédent.

Démarrer un nouveau projet avec git-svn

Si vous travaillez sur un projet existant hébergé sur SVN, vous pouvez démarrer un nouveau projet avec git svn clone. Cette commande clone le repository SVN local et crée un nouveau dépôt Git.

$ git svn clone http://tfs:8080/tfs/DefaultCollection/$/My.Project.Name

Intégration de git-tfs

Pour intégrer Git avec TFVS, vous pouvez utiliser la commande git tfs clone. Cette commande crée un nouveau dépôt Git qui est lié à votre repository TFVS.

$ git tfs clone http://tfs:8080/tfs/DefaultCollection/$/My.Project.Name

Créer de nouveaux refs

Vous pouvez créer un nouveau ref avec git checkout -b <refname>. Cette commande crée une nouvelle branche qui pointe vers le dernier commit.

$ git checkout -b TestBranch

Mise en place d’un dépôt Git

Pour mettre en place un dépôt Git, vous pouvez utiliser la commande git add . pour ajouter tous les fichiers du projet et puis git commit -m "Initial commit". Cela crée un premier commit qui contient les métadonnées du projet.

Considérations sur l’espace disque

Il est important de noter que Git ne stocke pas directement les différences entre les versions, mais plutôt les fichiers complets. Il existe donc des considérations importantes concernant l’utilisation de l’espace disque lorsque vous travaillez avec Git.

Conclusion

Dans cet article, nous avons exploré les objets Git en détail : commit, tree et blob. Nous avons vu comment ils sont structurés et comment ils contribuent à la gestion du code source. Nous avons également discuté des commandes pour créer de nouveaux commits, démarrer un nouveau projet avec git-svn et intégrer Git avec TFVS. J’espère que cet article vous a aidé à mieux comprendre les fonctionnalités de base de Git.

Sujets suivants

  • Comprendre les références (refs) dans Git
  • Utiliser les commandes git log et git show pour visualiser l’historique des commits

Pour aller plus loin, vous pouvez consulter la documentation officielle de Git et les ressources en ligne pour apprendre davantage sur les fonctionnalités avancées de Git.

Advertisement

In-Article Ad

Dev Mode

Share this article

Mahmoud DEVO

Mahmoud DEVO

Senior Full-Stack Developer

I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.

Enjoyed this article?

Subscribe to get more tech content delivered to your inbox.

Related Articles