Cum să remediați eroarea Git: mai întâi trebuie să vă rezolvați indexul curent

Eroarea „ Trebuie să rezolvați mai întâi indexul curent ” apare în Git și înseamnă că există un conflict de îmbinare și, cu excepția cazului în care rezolvați conflictul, nu vi se va permite să efectuați plata către o altă sucursală. Acest mesaj de eroare înseamnă, de asemenea, că o îmbinare a eșuat sau că există conflicte cu fișierele.

Eroare: trebuie să vă rezolvați mai întâi indexul curent în controlul sursei Git

Care sunt toate aceste fișiere, fuziuni și conflicte? Acești termeni vă vor fi necunoscuți dacă sunteți începător în utilizarea Git. Git este o platformă de control al versiunilor care permite mai multor persoane să lucreze simultan pe fișiere și să împingă copia locală a codului către cea stocată în cloud. În acest fel, dacă modificați un cod descărcat (sau deja împins) și îl împingeți din nou în cloud, modificările vor fi suprascrise în cloud de copia locală.

Git are un concept de ramuri. Există o ramură principală și alte câteva ramuri se ramifică din ea. Această eroare apare în special dacă comutați de la o ramură la alta (folosind checkout) și există conflicte în fișierele ramurii curente. Dacă nu sunt rezolvate, nu veți putea schimba ramurile.

Ce cauzează eroarea Git: mai întâi trebuie să vă rezolvați indexul actual?

Așa cum am menționat anterior, cauzele acestei erori sunt destul de limitate. Veți experimenta această eroare deoarece:

  • O îmbinare nu a reușit și trebuie să abordați conflictul de îmbinare înainte de a continua cu alte sarcini.
  • Există conflicte în fișierele din filiala dvs. curentă (sau filială vizată) și, din cauza acestor conflicte, nu veți putea să ieșiți dintr-o filială sau să introduceți codul.

Înainte de a continua cu soluția, asigurați-vă că aveți un control adecvat al versiunii și este înțelept să opriți ceilalți membri ai echipei să nu schimbe codul înainte de a rezolva conflictul.

Soluția 1: rezolvarea conflictului de fuziune

Dacă îmbinarea dvs. nu este rezolvată automat de Git, acesta lasă indexul și arborele de lucru într-o stare specială, care vă oferă toate informațiile de care aveți nevoie pentru a rezolva îmbinarea. Fișierele care au conflicte vor fi marcate special în index și până când veți rezolva problema și actualizați indexul, veți primi în continuare acest mesaj de eroare.

  1. Rezolvați toate conflictele . Verificați fișierele care au conflicte deoarece vor fi marcate de index și efectuați modificări în ele în consecință.
  2. După ce ați rezolvat toate conflictele existente, adăugați fișierul și apoi comiteți .

Un exemplu este:

$ git add file.txt $ git commit

Puteți adăuga comentariul dvs. personal în timp ce comiteți. Un exemplu este:

$ git commit –m „Acesta este depozitul Appuals Git”
  1. După ce ați rezolvat conflictul, încercați să ieșiți din sucursala dvs. existentă și să vedeți dacă problema este rezolvată.

Soluția 2: Revenirea la Merge

Există numeroase cazuri în care fuzionați sucursale și vă deranjați. Din cauza tuturor conflictelor și confuziei, proiectul este acum o mizerie și membrii echipei tale vă învinovățesc pentru asta. În acest caz, trebuie să reveniți la comiterea anterioară (comisia de îmbinare) . Aceasta va anula în totalitate îmbinarea și va readuce întregul proiect într-o stare când nu ați făcut nicio îmbinare. Acesta poate fi un instrument de salvare dacă ați încurcat lucrurile fără reparații.

Pentru a reveni la îmbinare , tastați următoarele:

$ git reset -–merge

Comanda de mai sus va reseta indexul și va actualiza fișierele din arborele de lucru care sunt diferite între „commit” și „head”. Cu toate acestea, va păstra acele fișiere care sunt diferite între index și arborele de lucru.

De asemenea, puteți încerca să reveniți la HEAD utilizând următoarea comandă:

$ git revine HEAD

Dacă doriți să specificați confirmarea de îmbinare exactă pe care doriți să o reveniți, puteți utiliza aceeași comandă de revertare, dar specificați parametri suplimentari. Va fi utilizat hash-ul SHA1 al commit-ului de îmbinare. -M urmat de 1 indică faptul că dorim să păstrăm partea părinte a îmbinării (ramura în care fuzionăm). Rezultatul acestei reveniri este că Git va crea un nou commit care revine la modificările de la îmbinare.

$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>