22/10/2024

Les conflits lors d’un merge

Dans les situations où un même fichier existant dans deux branches différentes a été modifié, Git va signaler qu'un conflit est survenu et il va vous donner des options pour le résoudre. Les conflits arrivent plus souvent lorsqu'il y a plusieurs contributeurs sur un même dépôt. Heureusement, il existe plusieurs outils pour simplifier la résolution de conflit, autant des extensions dans VS Code (Git Graph, GitLens, Git History) que des applications comme TurtoiseGit.

Par défaut, dans VS Code, vous pouvez visualiser les changements et les comparer, puis décider de la version que vous voulez conserver pour le merge. Un point d'exclamation indique le fichier conflictuel (ici « test.sh »). Vous pouvez ensuite ouvrir le fichier et les différences seront affichées avec des options : Accept Current Change | Accept Incoming Change, etc. Si les changements ne posent pas problème et qu'ils peuvent cohabiter, vous pouvez accepter les deux avec l'option Accept Both Changes.

Si vous souhaitez avoir plus de détails, vous pouvez appuyer sur le bouton « Resolve in Merge Editor » qui va diviser l'écran pour vous montrer les changements de chaque version. Vous aurez aussi des options de résolution dans le haut de chaque section. Lorsque vous avez choisi la version à conserver, vous pouvez appuyer sur « Complete Merge ».

Les conflits sont souvent à résoudre au cas par cas et ce n'est pas tant du côté de Git qu'il faut se tourner, mais vers la personne qui a modifié le même fichier. Il faut alors convenir de la version à conserver ou voir si les deux changements peuvent être fusionnés ensemble sans « briser » quoi que ce soit.

Lorsque vous travaillez sur un dépôt partagé sur GitHub, par exemple, il existe une opération nommée « Pull request » qui permet aux contributeurs de faire une revue de code avant de fusionner en mettant à leur disposition un service de messagerie instantané et des outils de comparaison des modifications . Ce processus ne résout pas tous les conflits, mais il permet de les minimiser avant de faire un merge. Les « Pull requests » dépassent le cadre du présent cours, mais il est utile de savoir que cette fonctionnalité existe. Le nom peut varier selon la plateforme, par exemple, dans GitLab, il s'agit de « Merge requests ».

author avatar
Luc BRETON Administrateur système et cloud
Administrateur système et cloud avec une orientation DevOps pour une grande chaîne de pharmacies québécoise. Je suis plutôt généraliste avec une forte expérience côté virtualisation, stockage, cloud hybride et un intérêt particulier pour l'automatisation. J'aime le transfert de connaissances et il me fait plaisir d'être la première voix nord-américaine d'IT-Connect !
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.