Introduction
Un commit Git référence zéro, un ou plusieurs commits parents. Tout l'historique est un graphe acyclique dirigé (DAG) de ces liens parents. Les branches et tags sont simplement des étiquettes sur des nœuds de ce graphe.
Anatomie d'un lien parent
git cat-file -p HEAD
# tree 9f1a...
# parent b2c3...
# parent d4e5... (uniquement sur les merge commits)
# author Ada ...
# committer Ada ...
Un parent : historique linéaire. Deux parents : un merge. Zéro parent : un commit racine. Trois ou plus : un merge octopus.