Comment corriger l'erreur Git: Vous devez d'abord résoudre votre index actuel

L'erreur « Vous devez d'abord résoudre votre index actuel » se produit dans Git et signifie qu'il existe un conflit de fusion. Si vous ne le résolvez pas, vous ne serez pas autorisé à passer à la caisse dans une autre branche. Ce message d'erreur signifie également qu'une fusion a échoué ou qu'il existe des conflits avec les fichiers.

Erreur: vous devez d'abord résoudre votre index actuel.

Que sont tous ces fichiers, fusions et conflits? Ces termes vous seront inconnus si vous débutez dans l’utilisation de Git. Git est une plate-forme de contrôle de version qui permet à plusieurs personnes de travailler sur des fichiers simultanément et de pousser leur copie locale du code vers celui stocké dans le cloud. Ainsi, si vous modifiez du code téléchargé (ou déjà poussé) et le repoussez vers le cloud, les modifications seront écrasées dans le cloud par votre copie locale.

Git a un concept de branches. Il y a une branche principale et plusieurs autres branches. Cette erreur se produit notamment si vous passez d'une branche à une autre (à l'aide de l'extraction) et qu'il existe des conflits dans les fichiers de la branche actuelle. S'ils ne sont pas résolus, vous ne pourrez pas changer de branche.

Quelles sont les causes de l’erreur Git: Vous devez d’abord résoudre votre index actuel?

Comme mentionné précédemment, les causes de cette erreur sont assez limitées. Vous rencontrerez cette erreur car:

  • Une fusion a échoué et vous devez résoudre le conflit de fusion avant de passer à d'autres tâches.
  • Il y a des conflits dans les fichiers de votre branche actuelle (ou de votre branche cible) et, à cause de ces conflits, vous ne pourrez pas extraire une branche ou un code push.

Avant de procéder à la solution, assurez-vous que vous disposez du contrôle de version approprié et qu'il est judicieux d'empêcher les autres membres de l'équipe de modifier le code avant de résoudre le conflit.

Solution 1: Résoudre le conflit de fusion

Si votre fusion n'est pas automatiquement résolue par Git, l'index et l'arbre de travail restent dans un état spécial, ce qui vous permet de vous fournir toutes les informations nécessaires à la résolution de la fusion. Les fichiers qui ont des conflits seront marqués spécialement dans l'index et jusqu'à ce que vous résolviez le problème et mettiez à jour l'index, vous continuerez à recevoir ce message d'erreur.

  1. Résoudre tous les conflits . Vérifiez les fichiers qui ont des conflits car ils seront marqués par l'index et apportez les modifications en conséquence.
  2. Après avoir résolu tous les conflits existants, ajoutez le fichier, puis validez .

Un exemple est:

 $ git add file.txt $ git commit 

Vous pouvez ajouter votre commentaire personnel en vous engageant. Un exemple est:

 $ git commit –m “Ceci est le référentiel Appuals Git” 
  1. Une fois le conflit résolu, essayez d'extraire votre branche existante et vérifiez si le problème est résolu.

Solution 2: annuler votre fusion

Il existe de nombreux cas où vous fusionnez des branches et que vous vous trompez. À cause de tous les conflits et de la confusion, le projet est maintenant en désordre et les membres de votre équipe vous en veulent. Dans ce cas, vous devez rétablir le commit précédent (le commit de fusion) . Cela annulera entièrement la fusion et ramènera le projet entier à un état où vous ne feriez aucune fusion. Cela peut vous sauver la vie si vous avez tout gâché.

Pour annuler la fusion, tapez ce qui suit:

 $ git reset –merge 

La commande ci-dessus réinitialisera l'index et mettra à jour les fichiers de l'arborescence de travail qui sont différents entre «commit» et «head». Cependant, il conservera les fichiers qui sont différents entre l'index et l'arbre de travail.

Vous pouvez également essayer de revenir à HEAD en utilisant la commande suivante:

 $ git revert HEAD 

Si vous souhaitez spécifier la validation de fusion exacte que vous souhaitez rétablir, vous pouvez utiliser la même commande revert, mais spécifier des paramètres supplémentaires. Le hachage SHA1 du commit de fusion sera utilisé. Le -m suivi du 1 indique que nous souhaitons conserver le côté parent de la fusion (la branche dans laquelle nous fusionnons). Le résultat de cette inversion est que Git créera un nouveau commit qui annule les modifications de la fusion.

 $ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4> 

Des Articles Intéressants