Blogs

Accueil / Blogs / Comment résoudre les conflits de fusion dans Git

Table des matières
L'automatisé, Pas de code Pile de données

Apprener comment Astera Data Stack peut simplifier et rationaliser la gestion des données de votre entreprise.

Comment résoudre les conflits de fusion dans Git

Mai 23rd, 2024

La possibilité de faire contribuer plusieurs membres de l'équipe à un projet et de le mener à terme dans les délais est inestimable pour le succès d'un produit, en particulier lorsqu'il bénéficie de mises à jour et d'améliorations régulières des fonctionnalités basées sur les commentaires des clients. Les équipes réalisent facilement cette contribution simultanée grâce à des systèmes de contrôle de version distribués (DVCS) comme Git.

Le fait que Git fonctionne sur un réseau distribué dépôt Ce modèle signifie que le code source et l'intégralité de son historique de versions sont disponibles pour chaque développeur, ce qui lui permet de revenir en arrière et de « remonter le temps ». Les membres de l'équipe travaillant sur le même projet peuvent travailler dans différentes branches, qu'ils fusionnent ensuite.

Mais que se passe-t-il lorsque deux développeurs travaillant sur le même fichier apportent des modifications, valident et poussent ces modifications ? Ou si ces développeurs travaillent dans différentes branches du même référentiel, et que l'on décide de fusionner les branches ? La réponse est simple : les deux scénarios provoqueront un conflit de fusion.

Dans ce blog, nous allons apprendre à résoudre la fusion conflits dans Git de l'Intérieur AsteraPlateforme de données de. Mais avant cela, examinons rapidement ce que sont les conflits et pourquoi ils se produisent.

Que sont les conflits de fusion dans Git ?

Dans des circonstances normales, c'est-à-dire lorsque les commits se trouvent sur deux lignes de code ou branches différentes, Git résout automatiquement les différences. Cependant, lorsque les différences se trouvent dans les mêmes lignes de code, Git nécessite une intervention humaine pour résoudre ces différences. Cette instance, où il ne peut pas résoudre les différences par lui-même, s'appelle un conflit de fusion, ou simplement un conflit.

L'image suivante illustre comment un conflit peut se produire :

Comment résoudre un conflit de fusion dans git

Conflit de fusion

Disons qu'il y a deux développeurs, A et B, travaillant dans la même branche. Ces deux développeurs extraient le même fichier du référentiel distant et y apporter des modifications. Le développeur B termine sa tâche plus tôt et renvoie le fichier sur le serveur. Jusqu'ici tout va bien.

De même, le développeur A termine son travail et continue à le pousser. Cependant, elle fait face à un conflit lorsqu'elle tente de pousser le dossier. Ce conflit est dû au fait que le même fichier a déjà été remplacé dans le référentiel distant par une version mise à jour du côté du développeur B.

La même chose se serait produite si ces deux développeurs, travaillant dans des branches différentes, avaient apporté des modifications au même fichier et que l'un d'eux avait essayé de fusionner sa branche dans la branche de l'autre développeur. Un autre conflit se produit lorsque l'un des développeurs modifie un fichier et que l'autre le supprime.

Le développeur qui effectue l'opération de fusion est affecté par le conflit de fusion ; les autres membres de l'équipe resteront inconscients à moins qu'ils n'en soient explicitement informés. Par conséquent, il est de la responsabilité du développeur de résoudre le conflit et de terminer le processus de fusion.

Comment résoudre les conflits de fusion dans Git ?

La méthode la plus courante pour résoudre un conflit de fusion consiste à ouvrir le fichier et à effectuer manuellement les modifications requises. Par exemple, disons qu'il y a un fichier texte appelé "conflict.txt" qui a été récemment modifié et doit être poussé vers le référentiel distant. Cependant, le fichier ne passe pas car un conflit provoque l'arrêt du processus de fusion.

Dans ce cas, vous devrez utiliser les outils de ligne de commande Git pour résoudre le conflit. Pour ce faire, vous suivrez probablement les étapes suivantes :

  • Ouvrez le fichier dans votre éditeur de texte préféré
  • Identifier les changements à l'origine du conflit et apporter les changements nécessaires
  • Utilisez "git add conflict.txt" pour mettre en scène le fichier
  • Utilisez "git commit -m 'votre message de validation ici'" S'engager

Les autres commandes Git qui aident à résoudre les conflits de fusion incluent :

  • git réinitialiser
  • git diff
  • git push
  • git merge-abandon
  • git reset -mixte
  • git caisse
  • état de git
  • git rebase – continuer

Résoudre les conflits de fusion dans Git de l'intérieur Asterade l'interface utilisateur

AsteraIntégration de Git propose une solution de contrôle de version native qui vous permet de gérer toutes vos gestion des données projets en toute simplicité. Avec Asterade Git, un conflit peut survenir lorsque deux branches ont un fichier portant le même nom et que l'une des branches est fusionnée avec l'autre.

De même, vous serez confronté à un conflit lorsqu'il existe des différences dans les fichiers portant le même nom dans votre référentiel local et sur le serveur distant.

Prenons un exemple pour comprendre comment vous pouvez faire face à un conflit et ce que vous devez faire pour le résoudre en utilisant Git via le Astera Plate-forme de données. Supposons que nous ayons deux succursales locales : Branch01 et Branch02.

Comment résoudre un conflit de fusion : Branches Git

Navigateur Git Branches dans Astera

Chaque branche a des pipelines de données différents, mais les fichiers dans lesquels ils sont enregistrés contiennent le même nom, "GitDataflow01". Voir les images ci-dessous :

Image montrant le contenu de Branch01 avec les commandes Git dans Asterade l'interface utilisateur

Git Branches - Flux de données dans Branch01 enregistré dans le fichier "GitDataflow01"

Image montrant le contenu de Branch02 avec les commandes Git dans Asterade l'interface utilisateur

Git Branches - Flux de données dans Branch02 enregistré dans le fichier "GitDataflow01"

Si nous essayons de fusionner Branch01 dans la branche actuelle (Branch02 dans ce cas), nous obtiendrons une erreur due au conflit, et le fichier en conflit apparaîtra sous un nouveau nœud appelé Conflicted dans la fenêtre Git Changes. Nous avons donc maintenant un conflit, et avant de continuer, nous devrons le résoudre.

Voyons comment nous pouvons faire cela de l'intérieur Asterade l'interface utilisateur. Gardez à l'esprit, cependant, qu'à ce stade, nous avons trois options :

  • Abandonner le processus de fusion
  • Prévisualisez les fichiers dans chaque branche, ou
  • Procédez à la résolution sans prévisualiser (au cas où vous êtes certain de la version que vous souhaitez conserver)

Pour résoudre ce conflit, faites un clic droit sur le fichier, GitDataflow01 dans ce cas, et développez le Résoudre option au choix Tenir à jour (local) or Prenez entrant (à distance). Comme les noms le suggèrent, la sélection de la première option ne conservera que la version du fichier de la branche actuelle (Branch02), tandis que la dernière option ne conservera que la version de la branche en cours de fusion (Branch01).

Comment résoudre les conflits de fusion dans git

Résoudre les conflits de fusion dans Git dans Asterade l'interface utilisateur

Ensuite, nous validerons et fournirons un résumé pour terminer le processus de fusion.

AsteraL'intégration Git de vous permet d'effectuer la plupart des opérations Git, telles que push, pull, merge, fetch, commit, etc., sans écrire de code. Vous avez également la possibilité d'utiliser l'interface de ligne de commande si vous êtes à l'aise avec elle. Non seulement cela simplifie la gestion du contrôle de version, mais cela accélère également l'ensemble du processus.

Avec AsteraGrâce à l'intégration de Git, vous bénéficiez du meilleur des deux mondes pour rationaliser vos projets de gestion de données : Asteraest unifié, plate-forme de gestion de données sans code et les capacités de contrôle de version ultra-rapides de Git. Maintenant que vous savez comment résoudre les conflits de fusion dans Git, passez à l'étape suivante et essayez-le vous-même ! Inscrivez-vous pour un Essai gratuit 14-day or planifier une démo dès aujourd'hui !

Tu pourrais aussi aimer
7 meilleures pratiques cruciales en matière de gouvernance des données à mettre en œuvre
Qu’est-ce qu’un schéma de base de données ? Un guide complet
Provenance des données et lignée des données : principales différences
Considérant Astera Pour vos besoins en gestion de données ?

Établissez une connectivité sans code avec vos applications d'entreprise, vos bases de données et vos applications cloud pour intégrer toutes vos données.

Connectons-nous maintenant !
connectons-nous