Back

Comment fusionner la branche principale dans une autre branche avec Git

Comment fusionner la branche principale dans une autre branche avec Git

Points clés à retenir

  • La fusion de la branche principale dans votre branche intègre les dernières modifications de la ligne de développement principale.
  • Assurez-vous toujours que votre branche est à jour avant de fusionner.
  • Résolvez soigneusement les conflits de fusion en conservant les modifications souhaitées.
  • Poussez les modifications fusionnées vers le dépôt distant.

Vous travaillez sur une branche de fonctionnalité dans Git et vous avez besoin d’intégrer les dernières modifications de la branche principale ? Fusionner la branche principale dans votre branche actuelle est une tâche courante, mais elle peut être déroutante si vous n’êtes pas familier avec le processus. Dans ce guide étape par étape, nous vous expliquerons comment réussir à git merge main dans votre branche.

Comprendre les branches et les fusions dans Git

Avant de plonger dans les étapes, passons brièvement en revue le fonctionnement des branches Git. Une branche dans Git est simplement un pointeur vers un commit spécifique. La branche principale (anciennement appelée “master”) est la branche par défaut créée lorsque vous initialisez un dépôt.

Lorsque vous créez une nouvelle branche, Git crée un nouveau pointeur qui diverge de la branche principale à un commit spécifique. Cela vous permet de travailler sur de nouvelles fonctionnalités ou des corrections de bogues indépendamment de la ligne de développement principale.

La fusion est le processus d’intégration des modifications d’une branche dans une autre. Lorsque vous faites git merge main dans votre branche, Git combine les modifications de la branche principale dans votre branche actuelle.

Étape 1 : Assurez-vous que votre branche est à jour

Avant de fusionner la branche principale, assurez-vous que votre branche actuelle a les dernières modifications du dépôt distant :

git checkout votre-branche
git pull

Cela garantit que vous avez les commits les plus récents et minimise les risques de conflits lors de la fusion.

Étape 2 : Basculez vers la branche principale

Ensuite, basculez vers la branche principale et tirez les dernières modifications :

git checkout main
git pull

Cela met à jour votre branche principale locale avec tous les nouveaux commits du dépôt distant.

Étape 3 : Fusionnez la branche principale dans votre branche

Vous êtes maintenant prêt à fusionner les modifications de la branche principale dans votre branche :

git checkout votre-branche
git merge main

Git tentera de fusionner automatiquement les modifications. S’il n’y a pas de modifications conflictuelles, la fusion se terminera avec succès et vous verrez une sortie similaire à :

Updating a1b2c3d..e5f6g7h
Fast-forward
 file1.txt | 2 +-
 file2.txt | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

Résoudre les conflits de fusion

S’il y a des modifications conflictuelles dans les mêmes lignes d’un fichier, Git interrompra la fusion et marquera les conflits dans les fichiers affectés. Vous verrez une sortie comme :

Auto-merging file1.txt
CONFLICT (content): Merge conflict in file1.txt
Automatic merge failed; fix conflicts and then commit the result.

Pour résoudre les conflits :

  1. Ouvrez les fichiers en conflit dans votre éditeur.
  2. Recherchez les marqueurs de conflit (<<<<<<<, =======, >>>>>>>).
  3. Modifiez les fichiers pour conserver les modifications souhaitées et supprimez les marqueurs.
  4. Indexez les fichiers modifiés avec git add.
  5. Validez les modifications avec git commit pour terminer la fusion.

Pousser les modifications fusionnées

Après avoir fusionné avec succès la branche principale dans votre branche, poussez les modifications vers le dépôt distant :

git push

Votre branche est maintenant mise à jour avec les dernières modifications de la branche principale.

FAQ

`git merge` et `git rebase` intègrent tous deux les modifications d'une branche dans une autre, mais ils le font différemment :\n\n- `git merge` crée un nouveau commit de fusion, préservant l'historique complet des deux branches.\n- `git rebase` réécrit l'historique des commits en créant de nouveaux commits pour chaque commit de la branche d'origine et en les appliquant à la branche principale. Cela donne un historique linéaire.

Si vous n'avez pas encore poussé le commit de fusion, vous pouvez l'annuler avec :\n\n```\ngit reset --hard HEAD~1\n```\n\nCela déplace le pointeur de branche vers le commit précédant la fusion, annulant ainsi efficacement celle-ci.\n\nSi vous avez déjà poussé le commit de fusion, vous pouvez le révoquer avec :\n\n```\ngit revert -m 1 <hash-du-commit-de-fusion>\n```\n\nCela crée un nouveau commit qui annule les modifications de la fusion.

Conclusion

En suivant ces étapes et en comprenant les concepts clés, vous serez en mesure de fusionner avec confiance la branche principale dans votre branche et de garder votre flux de travail de développement fluide et organisé.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers