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

Eroarea „ Trebuie să rezolvați primul index actual ” apare în Git și înseamnă că există un conflict de îmbinare și, dacă nu veți rezolva conflictul, nu veți avea voie să faceți checkout la o altă sucursală. Acest mesaj de eroare semnifică, de asemenea, că o fuziune a eșuat sau există conflicte cu fișierele.

Eroare: mai întâi trebuie să rezolvați indexul curent

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

Git are un concept de ramuri. Există o ramură principală și mai multe alte ramuri se extind din ea. Această eroare apare în special dacă treceți de la o ramură la alta (folosind checkout) și există conflicte în fișierele sucursalei curente. Dacă acestea nu sunt rezolvate, nu veți putea să comutați sucursale.

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

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

  • O fuziune a eșuat și trebuie să abordați conflictul de îmbinare înainte de a continua cu alte sarcini.
  • Există conflicte în fișierele actuale (sau sucursală vizată) și, din cauza acestor conflicte, nu veți putea verifica o sucursală sau un cod push.

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

Soluția 1: Rezolvarea conflictului de îmbinare

Dacă fuziunea dvs. nu este rezolvată automat de Git, lasă indexul și arborele de lucru într-o stare specială, care vă ajută să vă oferi toate informațiile de care aveți nevoie pentru a rezolva combinarea. Fișierele care au conflicte vor fi marcate în mod special în index și până când rezolvați 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 acestea vor fi marcate de index și faceți modificări în ele în consecință.
  2. După ce ați rezolvat toate conflictele existente, adăugați fișierul și apoi faceți angajamentul .

Un exemplu este:

 $ git add file.txt $ git commit 

Puteți adăuga comentariile personale în timpul angajamentului. Un exemplu este:

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

Soluția 2: Revenirea Merge

Există numeroase cazuri în care îmbinați sucursalele și vă încurcați. Din cauza tuturor conflictelor și confuziei, proiectul este acum o încurcătură, iar membrii echipei tale te învinovățesc pentru asta. În acest caz, trebuie să reveniți la comiterea anterioară (comisiunea de îmbinare) . Acest lucru va anula fuziunea în întregime și va readuce întregul proiect la o stare atunci când nu ați făcut nicio fuziune. Acesta poate fi un salvator de viață dacă ați încurcat lucrurile dincolo de reparații.

Pentru a reveni la combinare, introduceți următoarele:

 resetare $ git -merge 

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

Puteți încerca, de asemenea, să reveniți la HEAD folosind următoarea comandă:

 $ git revin HEAD 

Dacă doriți să specificați angajarea exactă de fuziune pe care doriți să o revertiți, puteți utiliza aceeași comandă revert, dar specificați parametri suplimentari. Va fi utilizat hash-ul SHA1 al comisiei de îmbinare. -M urmat de 1 indică faptul că dorim să păstrăm partea părintească a fuziunii (ramura în care ne unim). Rezultatul acestei reveniri este faptul că Git va crea un nou angajament care va întoarce modificările din fuziune.

 $ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4> 

Articole Interesante