Résolution de conflit

Un conflit se produit lorsque des modifications sont apportées au même élément dans l’espace de travail et dans le référentiel Git distant. Lorsqu'un conflit se produit, l’état Git indique Conflit et Commit est désactivé.

Screenshot of a report with a Git status that says conflict.

Important

Cette fonctionnalité est en préversion.

Lorsque vous sélectionnez Mettre à jour en cas de conflit, un message vous avertit que vous devez résoudre les conflits avant de pouvoir mettre à jour.

Screenshot of error message from source control tab informing about conflicts.

Il existe trois façons de résoudre un conflit :

Résoudre les conflits dans l’interface utilisateur

Sélectionnez Mettre à jour tout pour afficher la liste de tous les éléments qui ont des conflits. Vous pouvez ensuite sélectionner la version à conserver pour chaque élément. Pour chaque élément en conflit, vous pouvez choisir d’accepter les modifications entrantes du référentiel Git ou de conserver la version actuelle qui se trouve dans l’espace de travail.

Screenshot of UI to select which version of a conflicted item to keep.

  • Choisissez Accepter les modifications entrantes pour remplacer les modifications dans l’espace de travail. Les modifications apportées à l’espace de travail sont perdues et l’état Git passe à synchronisé si l’importation réussit.

  • Choisissez Conserver le contenu actuel pour conserver la version actuellement dans l’espace de travail. Après la mise à jour, l’état Git passe à modifications non validées, car les modifications de l’espace de travail ne sont pas encore validées dans la branche.

Restaurer à un état précédent

Vous pouvez restaurer l'ensemble de l'espace de travail ou la branche Git au dernier état synchronisé. Si vous restaurez la branche Git à une validation précédente, vous pouvez toujours voir les modifications apportées à la branche non synchronisée. Si vous rétablissez l’espace de travail, vous perdez toutes les modifications apportées à l’espace de travail depuis le dernier commit.

Pour revenir à l’état synchronisé précédent, effectuez l’une des actions suivantes :

  • Utilisez la commande Annuler pour restaurer les éléments de l’espace de travail en conflit à leur dernier état synchronisé.
  • Restaurez le dernier état synchronisé dans Git à l’aide de la commande git revert dans Azure DevOps.

Vous pouvez également résoudre des conflits en déconnectant, puis en reconnectant l’espace de travail. Lorsque vous vous reconnectez, sélectionnez la direction dans laquelle vous souhaitez effectuer la synchronisation. Notez toutefois que lorsque vous vous reconnectez, tous les éléments de l'espace de travail ou de la branche sont écrasés, et pas seulement ceux qui sont en conflit. Elle ne restaure pas l’espace de travail ou la branche au dernier état synchronisé. Au lieu de cela, cette action remplace tout le contenu dans un emplacement par le contenu de l’autre.

Résoudre un conflit dans Git

Si vous n'êtes pas sûr des modifications apportées et de la version à choisir et que vous ne voulez pas revenir à un état antérieur, vous pouvez essayer de résoudre le conflit dans le repo Git en créant une nouvelle branche, en résolvant le conflit dans cette branche et en la synchronisant avec la branche actuelle.

Remarque

Seul un administrateur d’espace de travail peut reconnecter l’espace de travail à la nouvelle branche.

  1. Dans le volet Contrôle de code source, extrayez une nouvelle branche à l’aide du dernier ID de branche synchronisé affiché en bas de l’écran.

    Screenshot showing how to check out a new branch from the source control pane by selecting the down arrow.

    Screenshot of branch ID information shown on bottom of the screen.

    Cette étape crée une branche à partir de la branche en conflit à l’aide du dernier état Git synchronisé, avant d’apporter des modifications qui sont en conflit avec vos modifications. Vous pouvez voir vos modifications dans le volet Contrôle de code source, mais il n’y a rien à mettre à jour depuis la branche Git. La branche d’extraction conserve l’état actuel de l’espace de travail, de sorte que les modifications non validées sont conservées lors de la modification de la branche.

  2. Validez vos modifications dans la nouvelle branche. Cette nouvelle branche contient maintenant les modifications que vous avez apportées aux éléments connectés à une version antérieure de la branche Git qui n’est pas en conflit avec vos modifications.

  3. Dans Git, résolvez les conflits entre la branche d’origine et la nouvelle branche.

  4. Dans Git, fusionnez la nouvelle branche dans la branche d’origine

  5. Dans Fabric, revenez à l’espace de travail sur la branche d’origine.