Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Les branches Git : travailler en parallèle

  • 5 min

Par mis à jour le

Améliorer cette page

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é).

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 :

Historique Git à trois branches : main enchaîne les commits C1 à C5 ; feature/login part de C2, porte F1 et F2 puis fusionne dans main en C4 ; hotfix/urgent part de C4, porte H1 puis fusionne dans main en C5.hotfix/urgentfeature/loginmainbranchemergebranchemergeC1C2C3C4C5F1F2H1
Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %

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.

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.

  • 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 checkout existe 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

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn