Git Tutorials

Maîtriser les fusions de branches Git : Guide complet

Spread the love

La fusion de branches est un aspect crucial des workflows Git collaboratifs. Elle permet aux développeurs d’intégrer les modifications provenant de différentes branches, consolidant ainsi les fonctionnalités et les améliorations dans une base de code unifiée. Ce tutoriel couvre les principaux types de fusion et la résolution des conflits.

Table des matières

Fusions Fast-Forward

Une fusion fast-forward est le type le plus simple. Elle se produit lorsque la branche dans laquelle vous fusionnez (la branche cible) est un descendant direct de la branche que vous fusionnez (la branche source). Cela signifie qu’il n’y a pas de commits divergents ; l’historique est linéaire. Git déplace efficacement le pointeur de la branche cible vers le dernier commit de la branche source sans créer de nouveau commit de fusion.

Exemple :

Supposons que vous ayez une branche main et une branche feature. Vous avez créé la branche feature à partir de main, effectué des commits sur feature, et souhaitez maintenant fusionner feature dans main. Si aucun commit n’a eu lieu sur main depuis la création de feature, une fusion fast-forward aura lieu.


# Passer à la branche main
git checkout main

# Fusionner feature dans main
git merge feature

La sortie confirmera une fusion fast-forward, indiquant une intégration propre et efficace.

Fusions Récursives

Les fusions récursives gèrent les situations où les branches ont divergé. Cela se produit lorsque des commits ont été effectués à la fois sur les branches source et cible depuis qu’elles ont divergé d’un ancêtre commun. Git utilise un algorithme récursif pour combiner intelligemment ces modifications, ce qui entraîne généralement un nouveau commit de fusion sur la branche cible.

Exemple :

Si main et feature ont toutes deux reçu des commits depuis leur divergence, la fusion de feature dans main déclenche une fusion récursive.


# Passer à la branche main
git checkout main

# Fusionner feature dans main
git merge feature

Git créera un commit de fusion représentant les modifications combinées. La sortie indiquera qu’une stratégie de fusion récursive a été utilisée.

Résolution des conflits de fusion

Des conflits surviennent lorsque les mêmes lignes dans les mêmes fichiers ont été modifiées dans les deux branches. Git ne peut pas automatiquement décider quelles modifications conserver, il interrompt donc la fusion, marquant les sections conflictuelles dans les fichiers concernés.

Identification des conflits :

Git ajoute des marqueurs spéciaux (<<<<<<<, =======, >>>>>>>) aux fichiers conflictuels et les liste dans la sortie d’état.

Résolution des conflits :

  1. Ouvrir les fichiers conflictuels : Examinez les sections marquées pour comprendre les modifications de chaque branche.
  2. Modifier les fichiers : Résolvez manuellement les conflits, en supprimant les marqueurs de conflit.
  3. Indexer les modifications : Utilisez git add <fichier> pour indexer les fichiers résolus.
  4. Valider la fusion : Utilisez git commit pour terminer la fusion. Git crée un commit de fusion avec vos modifications résolues.

Exemple de fichier conflictuel :


<<<<<<>>>>>> feature

Vous devrez modifier cela pour sélectionner une ligne, ou une combinaison des deux.

En maîtrisant les fusions fast-forward et récursives, et en gérant efficacement les conflits, vous améliorerez votre workflow Git, permettant une collaboration efficace.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *