Jak naprawić błąd Git: Najpierw musisz rozwiązać bieżący indeks

Błąd „ Musisz najpierw rozwiązać aktualny indeks ” pojawia się w Git i oznacza, że ​​istnieje konflikt scalania i jeśli nie rozwiążesz konfliktu, nie będziesz mógł wyewidencjonować do innej gałęzi. Ten komunikat o błędzie oznacza również, że scalanie nie powiodło się lub występują konflikty z plikami.

Błąd: musisz najpierw rozwiązać bieżący indeks w kontroli źródła Git

Czym są te wszystkie pliki, połączenia i konflikty? Te terminy będą nieznane, jeśli jesteś początkującym użytkownikiem Git. Git to platforma kontroli wersji, która umożliwia kilku osobom jednoczesną pracę na plikach i przekazywanie ich lokalnej kopii kodu do tej przechowywanej w chmurze. W ten sposób, jeśli zmienisz jakiś pobrany (lub już wypchnięty) kod i wypchniesz go ponownie do chmury, zmiany zostaną nadpisane w chmurze przez twoją lokalną kopię.

Git ma koncepcję gałęzi. Istnieje gałąź główna i kilka innych gałęzi z niej. Ten błąd występuje szczególnie wtedy, gdy przełączasz się z jednej gałęzi do drugiej (przy użyciu wypisania) i występują konflikty w plikach bieżącej gałęzi. Jeśli nie zostaną rozwiązane, nie będziesz mógł zmieniać gałęzi.

Co powoduje błąd Git: najpierw musisz rozwiązać problem z bieżącym indeksem?

Jak wspomniano wcześniej, przyczyny tego błędu są dość ograniczone. Wystąpi ten błąd, ponieważ:

  • Seryjnej powiodło i trzeba rozwiązać konflikt scalania przed przejściem do innych zadań.
  • konflikty w plikach w bieżącej (lub ukierunkowanej oddział) oraz z powodu tych konfliktów, nie będzie w stanie sprawdzić z gałęzi lub pchania kodu.

Przed przystąpieniem do rozwiązania upewnij się, że masz odpowiednią kontrolę wersji i rozsądnie jest powstrzymać innych członków zespołu przed zmianą kodu przed rozwiązaniem konfliktu.

Rozwiązanie 1: Rozwiązywanie konfliktu scalania

Jeśli Twoje scalanie nie zostanie automatycznie rozwiązane przez Git, pozostawi indeks i drzewo robocze w specjalnym stanie, który pomoże Ci dostarczyć wszystkie informacje potrzebne do rozwiązania scalenia. Pliki, w których występują konflikty, zostaną specjalnie oznaczone w indeksie i dopóki nie rozwiążesz problemu i nie zaktualizujesz indeksu, będziesz nadal otrzymywać ten komunikat o błędzie.

  1. Rozwiąż wszystkie konflikty . Sprawdź pliki, w których występują konflikty, ponieważ zostaną one oznaczone przez indeks i odpowiednio wprowadź w nich zmiany.
  2. Po rozwiązaniu wszystkich istniejących konfliktów dodaj plik, a następnie zatwierdź .

Przykładem jest:

$ git add file.txt $ git commit

Podczas zatwierdzania możesz dodać swój osobisty komentarz. Oto przykład:

$ git commit –m „To jest repozytorium Appuals Git”
  1. Po rozwiązaniu konfliktu spróbuj wyewidencjonować istniejącą gałąź i sprawdź, czy problem został rozwiązany.

Rozwiązanie 2: Cofnij scalenie

Istnieje wiele przypadków, w których można scalić gałęzie i popsuć. Z powodu wszystkich konfliktów i zamieszania projekt jest teraz bałaganem, a członkowie Twojego zespołu obwiniają Cię za to. W takim przypadku musisz cofnąć poprzednie zatwierdzenie (zatwierdzenie scalające) . Spowoduje to całkowite cofnięcie scalenia i przywrócenie całego projektu do stanu, w którym nie wykonałeś żadnych scaleń. Może to uratować życie, jeśli zepsułeś rzeczy nie do naprawienia.

Aby cofnąć scalenie , wpisz:

$ git reset -–merge

Powyższe polecenie zresetuje indeks i zaktualizuje pliki w drzewie roboczym, które różnią się między „zatwierdzeniem” i „nagłówkiem”. Jednak zachowa te pliki, które są różne w indeksie i drzewie roboczym.

Możesz także spróbować odwrócić HEAD za pomocą następującego polecenia:

$ git przywróć HEAD

Jeśli chcesz dokładnie określić zatwierdzenie scalania, które chcesz cofnąć, możesz użyć tego samego polecenia przywracania, ale określić dodatkowe parametry. Zostanie użyty skrót SHA1 zatwierdzenia scalania. -M, po którym następuje 1, wskazuje, że chcemy zachować macierzystą stronę scalania (gałąź, do której się scalamy). Rezultatem tego przywrócenia jest to, że Git utworzy nowe zatwierdzenie, które cofnie zmiany z scalenia.

$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>