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é.
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.
Il existe trois façons de résoudre un conflit :
- Sélectionnez la version à conserver via l’interface utilisateur.
- Restaurez l’espace de travail ou le référentiel Git à un état synchronisé antérieur.
- Résolvez le conflit dans Git.
- mettre à jour manuellement l’espace de travail si un ou plusieurs éléments ne parviennent pas à être mis à jour.
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.
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.
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
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.
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.
Dans Git, résolvez les conflits entre la branche d’origine et la nouvelle branche.
Dans Git, fusionnez la nouvelle branche dans la branche d’origine
Dans Fabric, revenez à l’espace de travail sur la branche d’origine.