Hur du fixar Git-fel: Du måste lösa ditt nuvarande index först

Felet " Du måste lösa ditt nuvarande index först " inträffar i Git och innebär att det finns en sammanslagningskonflikt och såvida du inte löser konflikten, får du inte kassa till en annan gren. Detta felmeddelande betyder också att en sammanslagning misslyckades eller att det finns konflikter med filerna.

Fel: Du måste lösa ditt nuvarande index först

Vad är alla dessa filer, sammanslagningar och konflikter? Dessa villkor är okända för dig om du är nybörjare för att använda Git. Git är en versionskontrollplattform som gör att flera personer kan arbeta med filer samtidigt och skjuta sin lokala kopia av koden till den som är lagrad i molnet. På det här sättet om du ändrar någon nedladdad (eller redan tryckt) kod och trycker på den igen till molnet, kommer ändringarna att skrivas över i molnet av din lokala kopia.

Git har ett koncept av grenar. Det finns en masterfilial och flera andra filialer grenar ut från den. Detta fel inträffar särskilt om du växlar från en gren till en annan (använder kassan) och det finns konflikter i filerna i den aktuella grenen. Om de inte löses kan du inte byta gren.

Vad orsakar Git-felet: Du måste lösa ditt nuvarande index först?

Som nämnts tidigare är orsakerna till detta fel ganska begränsade. Du kommer att uppleva det här felet eftersom:

  • En sammanslagning misslyckades och du måste ta itu med sammanslagningskonflikten innan du går vidare med andra uppgifter.
  • Det finns konflikter i filerna i din nuvarande (eller riktade gren) och på grund av dessa konflikter kommer du inte att kunna kolla in en gren eller push-kod.

Innan du fortsätter med lösningen, se till att du har korrekt versionskontroll och det är klokt att hindra andra teammedlemmar från att ändra koden innan du löser konflikten.

Lösning 1: Lösning av sammanslagningskonflikten

Om din sammanslagning inte automatiskt löses av Git lämnar den indexet och arbetsträdet i ett speciellt tillstånd som hjälper till att ge dig all information du behöver för att lösa sammanslagningen. De filer som har konflikter kommer att markeras speciellt i indexet och tills du löser problemet och uppdaterar indexet kommer du fortsätta att få felmeddelandet.

  1. Lös alla konflikter . Kontrollera filerna som har konflikter eftersom de kommer att markeras av indexet och gör ändringar i dem i enlighet därmed.
  2. När du har löst alla befintliga konflikter lägger du till filen och begår sedan .

Ett exempel är:

 $ git lägg till file.txt $ git commit 

Du kan lägga till din personliga kommentar när du begår. Ett exempel är:

 $ git commit –m “This is Appuals Git repository” 
  1. När du har löst konflikten kan du försöka kolla in din befintliga gren och se om problemet är rätt.

Lösning 2: Återgå din sammanslagning

Det finns många fall där du slår samman grenar och krossar. På grund av alla konflikter och förvirring är projektet nu röra och dina teammedlemmar skyller dig för det. I det här fallet måste du återställa tidigare engagemang (sammanslagningsåtagandet) . Detta kommer att ångra fusionen helt och återföra hela projektet till ett tillstånd när du inte gjorde några sammanslagningar. Detta kan vara en livräddare om du har trasslat saker och ting utanför reparation.

Om du vill återställa sammanslagningen skriver du följande:

 $ git reset –merge 

Ovanstående kommando återställer indexet och uppdaterar filerna i arbetsträdet som skiljer sig mellan 'commit' och 'head'. Men det kommer att behålla de filer som skiljer sig mellan indexet och arbetsträdet.

Du kan också prova att återställa HEAD med hjälp av följande kommando:

 $ git återvänd HEAD 

Om du vill ange den exakta sammanslagningen som du vill återställa kan du använda samma kommando för att återställa men ange ytterligare parametrar. SHA1-hash från sammanslagningsåtagandet kommer att användas. -M följt av 1 indikerar att vi vill behålla den överordnade sidan av sammanslagningen (grenen vi slås samman i). Resultatet av denna återgång är att Git kommer att skapa ett nytt engagemang som rullar tillbaka ändringarna från sammanslagningen.

 $ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4> 

Intressanta Artiklar