Jak naprawić błąd Git: Najpierw musisz rozwiązać bieżący indeks
Błąd „ Najpierw musisz rozwiązać bieżący indeks ” występuje w Git i oznacza, że występuje konflikt scalania i dopóki nie rozwiążesz konfliktu, nie będziesz mógł dokonać transakcji do innej gałęzi. Ten komunikat o błędzie oznacza również, że scalenie nie powiodło się lub wystąpiły konflikty z plikami.
Co to są te wszystkie pliki, scalenia i konflikty? Warunki te będą Ci nieznane, jeśli dopiero zaczynasz korzystać z Git. Git to platforma kontroli wersji, która pozwala kilku osobom pracować jednocześnie nad plikami i przesyłać ich lokalną kopię kodu do tej przechowywanej w chmurze. W ten sposób, jeśli zmienisz część pobranego (lub już wypchniętego) kodu i wrzucisz go ponownie do chmury, zmiany zostaną zastąpione w chmurze przez lokalną kopię.
Git ma pojęcie oddziałów. Istnieje gałąź główna i kilka innych gałęzi. Ten błąd występuje szczególnie wtedy, gdy przechodzisz z jednej gałęzi do drugiej (za pomocą kasy) i występują konflikty w plikach bieżącej gałęzi. Jeśli nie zostaną rozwiązane, nie będzie można zmieniać gałęzi.
Co powoduje błąd Git: Najpierw musisz rozwiązać bieżący indeks?
Jak wspomniano wcześniej, przyczyny tego błędu są dość ograniczone. Ten błąd wystąpi, ponieważ:
- Scalanie nie powiodło się i musisz rozwiązać konflikt scalania przed przejściem do innych zadań.
- W plikach w bieżącym (lub docelowym oddziale) występują konflikty i z powodu tych konfliktów nie będzie można wyewidencjonować kodu oddziału ani kodu push.
Zanim przejdziesz do rozwiązania, upewnij się, że masz odpowiednią kontrolę wersji i mądrze jest powstrzymać innych członków zespołu przed zmianą kodu przed rozwiązaniem konfliktu.
Rozwiązanie 1: Rozwiązanie konfliktu scalania
Jeśli Twoje scalenie nie zostanie automatycznie rozwiązane przez Git, pozostawia indeks i drzewo robocze w specjalnym stanie, który pomaga ci uzyskać wszystkie informacje potrzebne do rozwiązania scalenia. Pliki, które powodują 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.
- Rozwiąż wszystkie konflikty . Sprawdź pliki, w których występują konflikty, ponieważ będą one oznaczone przez indeks i odpowiednio je wprowadź.
- Po rozwiązaniu wszystkich istniejących konfliktów dodaj plik, a następnie zatwierdź .
Przykładem jest:
$ git dodaj plik.txt $ git commit
Podczas dodawania możesz dodać swój osobisty komentarz. Przykładem jest:
$ git commit –m „To jest repozytorium Git Appuals”
- Po rozwiązaniu konfliktu spróbuj sprawdzić w istniejącym oddziale i sprawdź, czy problem został rozwiązany.
Rozwiązanie 2: Cofnięcie scalenia
Istnieje wiele przypadków, w których łączysz gałęzie i psujesz. 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 (scalenie zatwierdzenia) . Spowoduje to całkowite cofnięcie scalenia i przywróci cały projekt do stanu, w którym nie wykonano żadnych scaleń. Może to być ratownik, jeśli popsułeś rzeczy nie do naprawienia.
Aby cofnąć scalanie, wpisz następujące polecenie:
$ git reset –merge
Powyższe polecenie zresetuje indeks i zaktualizuje pliki w drzewie roboczym, które różnią się między „zatwierdzeniem” a „nagłówkiem”. Zachowa jednak te pliki, które różnią się między indeksem a działającym drzewem.
Możesz także spróbować cofnąć HEAD, używając następującego polecenia:
$ git przywróć HEAD
Jeśli chcesz określić dokładne zatwierdzenie scalania, które chcesz przywrócić, możesz użyć tego samego polecenia revert, ale podać dodatkowe parametry. Zostanie użyty skrót SHA1 zatwierdzenia scalania. -M, po którym następuje 1, wskazuje, że chcemy zachować stronę nadrzędną scalania (gałąź, w którą się łączymy). Rezultatem tego cofnięcia jest to, że Git utworzy nowe zatwierdzenie, które przywróci zmiany po scaleniu.
$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>