Par Anonyme (non vérifié) , 29 avril 2026

Introduction

Git est divisé en deux couches. Les commandes plumbing sont des blocs de construction bas niveau opérant sur la base de données d'objets, les refs et l'index. Les commandes porcelain sont des wrappers conviviaux construits à partir de la plumbing. git commit est porcelain ; git hash-object, git write-tree et git update-ref sont plumbing.

Par Anonyme (non vérifié) , 29 avril 2026

Introduction

Le garbage collection (gc) garde votre dépôt compact et rapide. Git le lance automatiquement quand certains seuils sont dépassés. Vous pouvez aussi l'invoquer manuellement.

Par Anonyme (non vérifié) , 29 avril 2026

Introduction

Un clone shallow télécharge seulement les N derniers commits d'une branche au lieu de l'historique complet. Le résultat est beaucoup plus petit et plus rapide à fetcher, au prix d'un historique incomplet.

Créer

git clone --depth 1 https://github.com/example/widget.git
git clone --depth 50 https://github.com/example/widget.git
git clone --depth 1 --branch v1.2.3 --single-branch <url>

Le répertoire .git contient un fichier shallow listant les commits dont les parents ont été omis.

Par Anonyme (non vérifié) , 29 avril 2026

Introduction

S'authentifier auprès d'un remote Git est principalement invisible jusqu'à ce que cela tourne mal. Les deux mécanismes principaux sont les clés SSH et les identifiants HTTPS (mots de passe ou, plus communément aujourd'hui, jetons d'accès personnels).

Clés SSH

Générez une clé moderne :

Par Anonyme (non vérifié) , 29 avril 2026

Introduction

Git peut transporter des données sur quatre familles de protocoles. Chacun a différents compromis en performance, authentification et compatibilité avec les pare-feu.

Local / file

Cloner depuis un répertoire utilise les E/S locales. Deux formes d'URL :

git clone /srv/git/widget.git
git clone file:///srv/git/widget.git

La première forme peut utiliser des hardlinks pour les objets sur le même système de fichiers (très rapide, très efficace en espace). La forme file:// copie toujours via le smart protocol.

Par Anonyme (non vérifié) , 29 avril 2026

Introduction

Tout ce que Git sait d'un dépôt vit dans .git/. Savoir ce qu'est chaque entrée dissipe le mystère des diagnostics « que vient-il de se passer ? ».

Par Anonyme (non vérifié) , 29 avril 2026

Introduction

Le modèle adressé par contenu de Git déduplique les objets identiques, mais les blobs similaires-mais-pas-identiques (un fichier et son édition ultérieure) coûteraient toujours leur taille complète chacun. Les pack files résolvent cela avec la compression delta : stocker un objet comme une base plus une séquence d'instructions « copy/insert » qui produisent un autre objet.

Par Anonyme (non vérifié) , 29 avril 2026

Introduction

Git stocke les objets en deux formats physiques. Les objets loose sont des fichiers individuels ; les objets packés vivent dans un pack file avec un corps delta-compressé. Les deux formes décrivent les mêmes objets logiques, adressés par les mêmes hachages.

Par Anonyme (non vérifié) , 29 avril 2026

Introduction

Une ref symbolique est une référence dont la valeur est un autre nom de ref plutôt qu'un hachage d'objet. L'exemple canonique est HEAD, qui contient généralement ref: refs/heads/main. Les refs symboliques permettent à Git de suivre « la branche courante » comme donnée, pas comme état.

Par Anonyme (non vérifié) , 29 avril 2026

Introduction

L'« atteignabilité » est la propriété la plus importante d'un objet Git. Un objet est atteignable si une ref y mène via les liens parent ou tree. Les objets inatteignables sont éligibles au garbage collection.

Règles d'atteignabilité

En partant de n'importe quelle ref :