Les branches sont le super-pouvoir de Git. Elles permettent de travailler sur plusieurs fonctionnalités en parallèle, d'isoler un correctif urgent, ou d'expérimenter sans risque, le tout sans toucher au code stable. Cette section couvre la création de branches, la fusion (merge et rebase), et les techniques avancées (cherry-pick, HEAD détaché).
Pourquoi les branches changent tout
Section intitulée « Pourquoi les branches changent tout »Sans branches, tout le monde travaille sur la même ligne d'historique.
Un bug introduit par un collègue bloque votre travail. Avec les
branches, chaque fonctionnalité ou correctif vit dans son propre fil.
Sur le schéma, feature/login part de C2 et revient dans main par un
merge en C4, pendant que hotfix/urgent part de C4 pour un correctif
fusionné en C5 :
Git rend les branches quasi gratuites : créer une branche ne copie rien, c'est juste un pointeur vers un commit. Sur le disque, en SHA-1, cela fait 41 octets, et 65 en SHA-256 : la taille dépend du format de hash, la nature de la branche non.
Ce que vous allez apprendre : le fil du module
Section intitulée « Ce que vous allez apprendre : le fil du module »Le module part du plus simple et monte vers les techniques avancées. Les branches en bref apprend à créer, lister, changer et supprimer des branches, et à comprendre HEAD comme un pointeur. Merge et conflits enseigne la fusion en fast-forward ou en 3-way merge, et la résolution des conflits. Rebase fondamental réapplique vos commits sur une base mise à jour pour obtenir un graphe linéaire, et tranche entre merge et rebase.
Gestion des branches couvre les conventions de
nommage et le nettoyage (--merged, --no-merged).
Branches distantes explique la liaison entre local
et remote : tracking branches, git fetch, push -u et upstream.
Enfin Cherry-pick (cherry-pick) applique un commit précis sur une autre
branche (backport, correctifs ciblés), et HEAD détaché
explique ce mode, quand il arrive et comment en sortir sans perdre de travail.
À retenir
Section intitulée « À retenir »- Une branche Git est un pointeur mobile vers un commit, elle ne coûte presque rien à créer
git switch(Git 2.23+) est la commande dédiée pour changer de branche ;git checkoutexiste toujours mais couvre d'autres usages historiques- Merge crée un commit de fusion, rebase réécrit l'historique, chacun a ses cas d'usage
- Ne jamais rebaser de l'historique déjà pushé sur une branche partagée
- Cherry-pick permet d'appliquer un commit isolé sans fusionner toute une branche