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

La tradition mailbox

git am applique des patches au format mbox : le format utilisé par les projets pilotés par mailing list comme le noyau Linux et Git lui-même. Chaque entrée mbox contient un patch plus ses métadonnées de commit (auteur, sujet, corps).

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

Pourquoi des patches

Les patches sont des diffs portables que vous pouvez envoyer par email, coller dans un ticket ou stocker comme fichier. C'est ainsi que fonctionne le développement du noyau Linux à grande échelle et ils restent utiles chaque fois que vous devez partager un changement sans accès push à un remote partagé.

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

Un workflow, pas une panique

Les conflits sont routiniers. Le bon workflow les transforme d'événement de stress en tâche de cinq minutes : inspecter, décider, éditer, vérifier, continuer.

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

Qu'est-ce que trois voies

Le diff à deux voies montre ce qui a changé entre deux versions. Le diff à trois voies considère aussi l'ancêtre commun, laissant Git décider si une région a été changée par un côté, l'autre ou les deux. Trois voies est le fondement du merge.

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

Les pseudo-refs peu célébrées

Au-delà de HEAD, Git maintient un petit zoo de refs automatiquement mises à jour qui enregistrent ce qui vient de se passer. Les connaître transforme "j'ai supprimé mon travail" en récupération d'une ligne.

HEAD

Pointe vers la branche actuelle ou, en détaché, directement vers un SHA de commit.

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

Au-delà du défaut

git log est un petit langage de requête pour votre histoire. Avec les bons flags il produit des rapports de qualité dashboard, des pistes d'audit et des forensics de bugs.

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

Éditer l'histoire sans la réécrire

Parfois vous voulez épisser des histoires (un import Subversion converti rencontrant une continuation, par exemple) sans réécrire les commits. Les grafts et l'espace de noms refs/replace/ permettent à Git de prétendre que le parent d'un commit est un autre commit, laissant les objets originaux intacts.

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

La staging area, démystifiée

L'index (alias cache, staging area) vit dans .git/index comme fichier binaire décrivant ce que contiendra le prochain commit. Ce n'est pas un tree — c'est une liste plate triée d'entrées de chemin avec stat info, mode et SHA. Des opérations comme git add, git rm et git mv mettent à jour l'index ; git commit le transforme en objet tree.

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

Qu'est-ce qu'une ref

Une ref est un nom qui pointe vers un objet — généralement un commit. Les branches sont des refs sous refs/heads/, les tags sous refs/tags/, le remote-tracking sous refs/remotes/, et les pseudo-refs comme HEAD, FETCH_HEAD, ORIG_HEAD vivent à la racine de .git.

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

Bases du packfile

Un packfile regroupe plusieurs objets dans un fichier avec compression delta — au lieu de stocker chaque version d'un fichier en entier, des objets similaires partagent une base et stockent uniquement la différence. Le résultat est une réduction de taille de 5x à 50x sur des repos réels.