Fusion de Branches
Compréhension de la fusion de branches
Dans Git, la fusion est le processus d'intégration des modifications d'une branche dans une autre. L'utilisation la plus courante consiste à fusionner des branches de fonctionnalité dans la branche principale (par exemple, main
ou master
). Cela garantit que les dernières fonctionnalités et corrections de bugs sont intégrées à la base de code principale.
Flux de travail de fusion de base
Examinons d'abord les deux derniers commits. Rappel : nous sommes actuellement sur la branche feature/new-feature
.
Comme vous pouvez le constater, notre branche master
a un commit de retard ; cependant, avant de fusionner les modifications, il faut basculer sur la branche dans laquelle on souhaite intégrer les changements. Basons-nous sur la branche master
et affichons les deux derniers commits de cette branche :
La branche master
a effectivement un commit de retard par rapport à la branche feature, fusionnons-les donc. Pour initier le processus de fusion, il convient d'utiliser la commande git merge
et de spécifier la branche à fusionner dans la branche courante. Par exemple, pour fusionner une branche de fonctionnalité nommée feature/new-feature
dans la branche master
, il faut exécuter la commande suivante :
Le message affiché après l'exécution de la commande contient l'élément suivant : Fast-forward
, qui indique qu'une fusion fast-forward a été réalisée.
Nous aborderons les deux types de fusion plus loin dans ce chapitre, mais avant cela, examinons les deux derniers commits :
Nous sommes toujours sur la branche master
, cependant, cette branche est désormais à jour avec notre branche feature, les deux branches pointant vers le même commit.
Le HEAD pointe toujours vers la branche master
puisque nous étions sur cette branche lors de la fusion.
Types de fusion
En réalité, il existe deux types d'opérations de fusion dans Git :
- fusion en avance rapide (fast-forward merge) ;
- fusion à trois voies (three-way merge).
Fusion en avance rapide
Celle que nous avons réalisée est un exemple de fusion en avance rapide comme mentionné dans le message. Ce type de fusion est effectué si tous les commits d'une branche sur laquelle nous nous trouvons (branche checkoutée) font également partie de la branche fusionnée, ce qui signifie que l'historique des commits de ces branches ne diverge pas. Observons l'illustration suivante pour clarifier cela :
Avec ce type de fusion, le pointeur de la branche actuellement sélectionnée est simplement mis à jour vers le dernier commit.
Fusion à trois voies
Cependant, si l’historique des branches a divergé, c’est-à-dire qu’après un certain commit commun, de nouveaux commits ont été réalisés séparément sur chaque branche, alors une fusion à trois voies est effectuée.
Le terme « trois voies » fait référence aux trois versions impliquées dans la fusion :
- la version de l’ancêtre commun le plus récent (commit) ;
- la version du dernier commit dans la branche courante (HEAD) ;
- la version du dernier commit dans la branche à fusionner.
Voici une illustration d’un tel processus de fusion :
Voici comment fonctionne une fusion à trois voies :
- Git identifie les modifications apportées sur chaque branche après l’ancêtre commun le plus récent ;
- Si chaque branche comporte des modifications dans des fichiers différents ou dans des parties différentes d’un même fichier, Git fusionnera automatiquement les modifications en les combinant dans le commit résultant ;
- Sinon, un conflit de fusion se produira.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 3.57
Fusion de Branches
Glissez pour afficher le menu
Compréhension de la fusion de branches
Dans Git, la fusion est le processus d'intégration des modifications d'une branche dans une autre. L'utilisation la plus courante consiste à fusionner des branches de fonctionnalité dans la branche principale (par exemple, main
ou master
). Cela garantit que les dernières fonctionnalités et corrections de bugs sont intégrées à la base de code principale.
Flux de travail de fusion de base
Examinons d'abord les deux derniers commits. Rappel : nous sommes actuellement sur la branche feature/new-feature
.
Comme vous pouvez le constater, notre branche master
a un commit de retard ; cependant, avant de fusionner les modifications, il faut basculer sur la branche dans laquelle on souhaite intégrer les changements. Basons-nous sur la branche master
et affichons les deux derniers commits de cette branche :
La branche master
a effectivement un commit de retard par rapport à la branche feature, fusionnons-les donc. Pour initier le processus de fusion, il convient d'utiliser la commande git merge
et de spécifier la branche à fusionner dans la branche courante. Par exemple, pour fusionner une branche de fonctionnalité nommée feature/new-feature
dans la branche master
, il faut exécuter la commande suivante :
Le message affiché après l'exécution de la commande contient l'élément suivant : Fast-forward
, qui indique qu'une fusion fast-forward a été réalisée.
Nous aborderons les deux types de fusion plus loin dans ce chapitre, mais avant cela, examinons les deux derniers commits :
Nous sommes toujours sur la branche master
, cependant, cette branche est désormais à jour avec notre branche feature, les deux branches pointant vers le même commit.
Le HEAD pointe toujours vers la branche master
puisque nous étions sur cette branche lors de la fusion.
Types de fusion
En réalité, il existe deux types d'opérations de fusion dans Git :
- fusion en avance rapide (fast-forward merge) ;
- fusion à trois voies (three-way merge).
Fusion en avance rapide
Celle que nous avons réalisée est un exemple de fusion en avance rapide comme mentionné dans le message. Ce type de fusion est effectué si tous les commits d'une branche sur laquelle nous nous trouvons (branche checkoutée) font également partie de la branche fusionnée, ce qui signifie que l'historique des commits de ces branches ne diverge pas. Observons l'illustration suivante pour clarifier cela :
Avec ce type de fusion, le pointeur de la branche actuellement sélectionnée est simplement mis à jour vers le dernier commit.
Fusion à trois voies
Cependant, si l’historique des branches a divergé, c’est-à-dire qu’après un certain commit commun, de nouveaux commits ont été réalisés séparément sur chaque branche, alors une fusion à trois voies est effectuée.
Le terme « trois voies » fait référence aux trois versions impliquées dans la fusion :
- la version de l’ancêtre commun le plus récent (commit) ;
- la version du dernier commit dans la branche courante (HEAD) ;
- la version du dernier commit dans la branche à fusionner.
Voici une illustration d’un tel processus de fusion :
Voici comment fonctionne une fusion à trois voies :
- Git identifie les modifications apportées sur chaque branche après l’ancêtre commun le plus récent ;
- Si chaque branche comporte des modifications dans des fichiers différents ou dans des parties différentes d’un même fichier, Git fusionnera automatiquement les modifications en les combinant dans le commit résultant ;
- Sinon, un conflit de fusion se produira.
Merci pour vos commentaires !