Sådan rettes Git-fejl: Du skal først løse dit nuværende indeks



Prøv Vores Instrument Til At Fjerne Problemer

Fejlen “ Du skal først løse dit nuværende indeks ”Forekommer i Git og betyder, at der er en fusionskonflikt, og medmindre du løser konflikten, har du ikke lov til at tjekke til en anden gren. Denne fejlmeddelelse betyder også, at en fletning mislykkedes, eller at der er konflikter med filerne.



Fejl: Du skal først løse dit nuværende indeks i Git-kildekontrol

Fejl: Du skal først løse dit nuværende indeks



Hvad er alle disse filer, fletninger og konflikter? Disse vilkår er ukendte for dig, hvis du er nybegynder i at bruge Git. Git er en versionskontrolplatform, der giver flere personer mulighed for at arbejde på filer samtidigt og skubbe deres lokale kopi af koden til den, der er gemt i skyen. På denne måde, hvis du ændrer en downloadet (eller allerede skubbet) kode og skubber den igen til skyen, overskrives ændringerne i skyen af ​​din lokale kopi.



Git har et koncept af grene. Der er en mastergren, og flere andre grene stammer fra den. Denne fejl opstår især, hvis du skifter fra en gren til en anden (ved hjælp af kassen), og der er konflikter i filerne i den aktuelle gren. Hvis de ikke løses, kan du ikke skifte filial.

Hvad forårsager Git-fejlen: Du skal først løse dit nuværende indeks?

Som nævnt før er årsagerne til denne fejl ret begrænsede. Du vil opleve denne fejl, fordi:

  • TIL fletning mislykkedes og du er nødt til at løse sammenlægningskonflikten, inden du går videre med andre opgaver.
  • Der er konflikter i filerne på din nuværende (eller målrettede filial) og på grund af disse konflikter vil du ikke være i stand til at tjekke ud af en gren eller push-kode.

Før du fortsætter med løsningen, skal du sørge for, at du har gjort det korrekt versionskontrol og det er klogt at stoppe andre teammedlemmer i at ændre koden, før du løser konflikten.



Løsning 1: Løsning af fusionskonflikt

Hvis din fletning ikke automatisk løses af Git, efterlader den indekset og det fungerende træ i en speciel tilstand, som hjælper dig med at få alle de oplysninger, du har brug for til at løse fusionen. De filer, der har konflikter, vil blive markeret specielt i indekset, og indtil du løser problemet og opdaterer indekset, vil du fortsat modtage denne fejlmeddelelse.

  1. Løs alle konflikter . Kontroller de filer, der har konflikter, da de markeres med indekset, og foretag ændringer i dem i overensstemmelse hermed.
  2. Når du har løst alle eksisterende konflikter, tilføje filen og derefter begå .

Et eksempel er:

$ git tilføj fil.txt $ git-forpligtelse

Du kan tilføje din personlige kommentar, mens du forpligter dig. Et eksempel er:

$ git commit –m “Dette er Appuals Git-arkiv”
  1. Når du har løst konflikten, kan du prøve at tjekke ud af din eksisterende filial og se, om problemet er løst.

Løsning 2: Gendan din fletning

Der er mange tilfælde, hvor du fusionerer grene og ødelagt. På grund af alle konflikter og forvirring er projektet nu et rod, og dine teammedlemmer bebrejder dig for det. I dette tilfælde skal du tilbageføre tidligere forpligtelse . Dette fortryder fletningen fuldstændigt og bringer hele projektet tilbage til en tilstand, hvor du ikke foretog nogen fletninger. Dette kan være en livredder, hvis du har ødelagt tingene uden reparation.

Til vende fusionen tilbage , skriv følgende:

$ git reset --- flet

Ovenstående kommando nulstiller indekset og opdaterer filerne i arbejdstræet, der adskiller sig fra 'commit' og 'head'. Det vil dog beholde de filer, der er forskellige mellem indekset og arbejdstræet.

Du kan også prøve vender hovedet tilbage ved hjælp af følgende kommando:

$ git vend tilbage HEAD

Hvis du vil specificere den nøjagtige fletteforpligtelse, som du vil vende tilbage, kan du bruge den samme kommando til tilbageførsel, men angive yderligere parametre. SHA1-hash af fusionsforpligtelsen vil blive brugt. -M efterfulgt af 1 angiver, at vi vil beholde fusionsforældrenes side (den gren, vi smelter sammen i). Resultatet af denne tilbagevenden er, at Git opretter en ny forpligtelse, der ruller ændringerne tilbage fra fusionen.

$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>
3 minutter læst