Błąd SVN Git: proces Gita uległ awarii w repozytorium wcześniej

97

Po prostu próbowałem wprowadzić zmiany do mastera Git. Z tego, co przeczytałem, wydaje się, że chodzi o usunięcie pliku blokady. Wiadomość mówi:

upewnij się, że żadne inne procesy Git nie są uruchomione i usuń plik ręcznie

Może ktoś wie, który plik usunąć i jak usunąć?

Pinchas K.
źródło
1
Czy możesz wyświetlić pełny komunikat o błędzie, w tym polecenie, które uruchamiasz?
Schwern,
chociaż używam żółwia. czy możesz usunąć ten plik w żółwiu czy tylko w skorupce?
Pinchas K
Prawdopodobnie będziesz musiał to zrobić w powłoce lub eksploratorze plików. Być może będziesz musiał pokazać ukryte pliki.
Schwern,
pełny błąd jest następujący: krytyczny: Nie można utworzyć pliku „C / etc / .git / index.lock”. Jeśli żaden inny proces git nie jest obecnie uruchomiony, prawdopodobnie oznacza to, że proces git uległ awarii w repozytorium wcześniej. Upewnij się, że żaden inny proces git nie jest uruchomiony i usuń plik ręcznie, aby kontynuować.
Pinchas K,
5
Komunikat o błędzie mówi wszystko. Usuń C:\etc\.git\index.lockjak każdy inny plik.
Schwern,

Odpowiedzi:

194

Plik, o którym mowa, jest prawdopodobny .git/index.locki powinno być bezpieczne po prostu go usunąć, jeśli nie masz uruchomionych innych procesów git . Upewnij się, że polecenie git-svn nie zawiesza się.

PS Moje zwykłe podejście do rozwiązywania problemów z git-svn polega na ponownym ściągnięciu repozytorium. Czasochłonne, ale możesz to zrobić równolegle z próbą rozwiązania problemu. Miej mały wyścig między tobą a dupkiem. Oczywiście działa to tylko wtedy, gdy nie masz niezakończonych zatwierdzeń.

Schwern
źródło
1
To nie rozwiązało tego za mnie. Miałem inny pozostały plik blokady w .git / svn / refs / remotes / git-svn / index.lock.
Kai Stavginski
74

Usunięcie index.lockpliku, jak stwierdził Schwern, rozwiąże ten problem.

Możesz go usunąć, uruchamiając rm -f ./.git/index.lock

rmPolecenie służy do usuwania (Usuń) plików i katalogów.

-fOznacza siłę, która opowiada komputera usunąć pliki bez monitowania o potwierdzenie

Joel
źródło
9

Dla użytkowników "GUI" takich jak ja

Otwórz rozszerzenie Git i wybierz repozytorium (jeśli więcej niż jedno) Wybierz „Ustawienia” z górnego menu, a następnie „Konserwacja Git”, a następnie kliknij „Usuń blokadę indeksu”

Rozszerzenia Git: Ustawienia-> Konserwacja Git-> Usuń blokadę indeksu

user3981082
źródło
2

Już otworzyłeś zatwierdzenie w innej karcie w terminalu

Andrew Denysyuk
źródło
2

Może to również dotyczyć dowolnych plików * .lock w .git /

Sprawdź je i usuń. Możesz użyć:rm -f ./.git/*.lock

artegen
źródło
0

Odpowiedź udzielona przez @Joel pomogła, z tym wyjątkiem, że w przypadku użytkowników systemu Windows może być konieczne włączenie opcji Pokaż ukryte pliki / foldery, aby uzyskać dostęp do folderu .git, w którym istnieje plik index.lock . Użyj tego linku, jeśli nie wiesz, jak włączyć ukryte foldery.

Joyce obi
źródło
0

Usunięcie pliku index.lock, jak stwierdził Schwern, rozwiąże ten problem.

Możesz go usunąć, uruchamiając rm -f ./.git/index.lock

Polecenie rm służy do usuwania (usuwania) plików i katalogów.

-F oznacza siłę, która mówi komputerowi, aby usunął pliki bez pytania o potwierdzenie

nadal nie działa oznacza otwarcie gita przez git bash zamiast robić w terminalu

sarangan
źródło