Fusionner des branches dans GitHub est essentiel lorsque plusieurs personnes (ou même simplement différentes fonctionnalités sur lesquelles vous travaillez) doivent fusionner. Si vous débutez, cela peut parfois sembler un peu compliqué, surtout si des conflits surgissent ou si vous essayez de le faire en ligne de commande et que vous ne savez pas exactement quelles commandes sont importantes. Ce guide vous explique tout, que vous préfériez naviguer sur le site web ou saisir des commandes dans votre terminal. Attendez-vous à pouvoir fusionner les modifications de code en douceur et à garder votre projet propre et net, sans écraser accidentellement le travail d’un autre utilisateur ni vous retrouver dans un enfer de fusion.
Comment fusionner une branche dans GitHub ?
Méthode 1 : Fusion avec le site Web GitHub
C’est souvent la solution la plus simple pour ceux qui ne veulent pas s’embêter avec les commandes du terminal. C’est visuel, simple et compatible avec Reddit. De plus, vous pouvez le faire directement depuis votre navigateur, aucune configuration n’est donc nécessaire.
- Ouvrez le référentiel sur GitHub où se trouvent vos branches.
- Cliquez sur l’ onglet Demandes d’extraction en haut de la page du dépôt.
- Cliquez sur Nouvelle demande d’extraction.
- Choisissez la branche de base (probablement principale ou master), puis comparez-la à la branche de fonctionnalité que vous souhaitez intégrer (par exemple, feature-xyz).En cas de doute, ces branches sont généralement clairement identifiées.
- Vérifiez les modifications sur le point d’être fusionnées. Il est parfois judicieux de vérifier à nouveau, surtout si de nombreuses mises à jour ont été publiées récemment.
- Cliquez sur « Créer une pull request ». Ajoutez un titre rapide et une note expliquant l’effet de cette fusion (car, bien sûr, GitHub vous oblige à le faire).
- Si tout semble correct, cliquez sur le bouton Fusionner la demande d’extraction.
- Confirmez la fusion en cliquant sur « Confirmer la fusion ». Et voilà ! Votre branche fait désormais partie de l’entité fusionnée.
Avant ou après cela, de nombreuses personnes clonent le dépôt localement sur leur machine pour travailler directement sur le code, puis le redistribuent lorsqu’elles sont prêtes. C’est probablement plus naturel pour les développeurs sérieux.
Méthode 2 : Fusion via la ligne de commande
C’est là que certains utilisent Git Bash, Terminal ou PowerShell pour effectuer un peu de travail manuel. C’est plus rapide une fois maîtrisé, et c’est parfois la seule solution pour automatiser des tâches ou travailler sur des pipelines CI/CD.
- Ouvrez votre terminal ou Git Bash.
- Accédez à votre dossier de dépôt local à l’aide de
cd /path/to/your/repo
. - Assurez-vous que vous êtes sur la branche principale :
git checkout main
. Si votre branche principale s’appelle master ou autre chose, remplacez-la en conséquence. - Extraire les dernières modifications depuis l’origine :
git pull origin main
. - Fusionnez votre branche de fonctionnalités :
git merge feature-branch
. Remplacez-lafeature-branch
par le nom de votre branche. - S’il n’y a pas de conflits, vous pouvez renvoyer le code combiné :
git push origin main
.
En cas de conflit, vous devrez ouvrir ces fichiers, déterminer les lignes à conserver, puis exécuter la commande git add
sur les fichiers résolus et git commit
finaliser la fusion. Les conflits sont gênants, mais gérables ; parfois, une simple modification manuelle suffit. Fait amusant : dans certaines configurations, des conflits apparaissent même s’ils ne devraient pas, ce qui est… étrange, mais une réinitialisation ou un rebasage peut aider.
Gestion des conflits de fusion
Des conflits surviennent lorsque deux branches modifient les mêmes lignes de code. Si Git ne sait pas laquelle conserver, il marquera ces sections, et vous devrez choisir.
- Git signalera les fichiers en conflit après votre tentative de fusion. Il vous indiquera généralement les fichiers à corriger.
- Ouvrez ces fichiers dans votre éditeur de code. Faites attention aux sections marquées par <<<<<<<, ======= et >>>>>>>>.Git vous indique ainsi où se situent les conflits.
- Décidez des modifications à conserver, supprimez les marqueurs de conflit et enregistrez.
- Exécutez
git add.
pour mettre en scène les fichiers résolus. - Terminez avec
git commit
— pendant cet engagement, vous pouvez même ajouter un message sur la résolution des conflits. - Envoyez vos modifications à distance :
git push origin main
.
Ce processus peut être frustrant les premières fois, surtout si des conflits surviennent de manière inattendue ou lors de fusions complexes. Mais après quelques tentatives, cela devient moins pénible et vous commencez à repérer les conflits plus tôt.
Pourquoi la fusion est importante
En résumé, la fusion assure la synchronisation de tout le travail. Elle garantit que tout le monde travaille sur le code le plus récent, évite les doublons et évite de se retrouver avec un fouillis de versions différentes.
FAQ
Ouvrez GitHub Desktop, puis accédez à votre branche de base (comme la branche principale).Cliquez sur Branche > Fusionner dans la branche actuelle, puis sélectionnez votre branche de fonctionnalité. C’est assez simple une fois qu’on s’y est habitué.
Oui, si c’est récent, vous pouvez faire un git reset pour git reset --hard HEAD~1
annuler la dernière fusion. Si c’est plus ancien ou que c’est un fichier push, vous devrez peut-être effectuer un retour arrière. C’est un peu risqué, alors gardez des sauvegardes en cas de doute.
La fusion conserve l’historique tel qu’il s’est produit, affichant toutes les branches intactes, tandis que le rebase réécrit l’historique de manière linéaire. Le rebase peut être plus propre, mais peut s’avérer délicat si l’on n’y prend pas garde.
Cela dépend du projet. Pour la plupart des dépôts partagés, un accès en écriture ou en tant que mainteneur est requis pour fusionner avec les branches principales ou de production. Sinon, vous devrez ouvrir une pull request et attendre l’approbation.
Conclure
La fusion des branches est essentielle à l’utilisation de GitHub. Que vous cliquiez sur des boutons ou saisissiez des commandes, l’essentiel est de vérifier les modifications, de résoudre soigneusement les conflits et de maintenir un historique clair. Parfois, les choses ne se passent pas parfaitement, mais cela fait partie de l’apprentissage. Si vous travaillez en équipe, de bonnes fusions assurent le bon fonctionnement de tout et réduisent les doutes ou les reprises. Surveillez simplement les conflits lorsqu’ils apparaissent pour que votre dépôt reste sain.