Próbuję wykonać git pull i pojawia się następujący błąd:
Odłączenie pliku „lib / xxx.jar” nie powiodło się. Powinienem spróbować ponownie? (t / n)
Bez względu na to, czy wybiorę t czy n, nie jest możliwe osiągnięcie stanu, w którym mogę ciągnąć lub pchać.
chmod
i / lubchown
na wspomnianym pliku.Odpowiedzi:
Zwykle oznacza to, że proces nadal używa tego konkretnego pliku (nadal ma do niego uchwyt)
(w systemie Windows
ProcessExplorer
jest dobry w śledzeniu tego rodzaju procesu)Spróbuj zamknąć inne programy i spróbuj ponownie
git pull
.Zauważ, że masz alternatywę ze
GIT_ASK_YESNO
zmienną .Aktualizacja styczeń 2019:
To powinno być jeszcze bardziej naprawione dzięki Git 2.21 (Q1 2019), ponieważ „
git gc
” i „git repack
” nie zamykały otwartych plików paczek, które uznali za niepotrzebne przed ich usunięciem, co nie działało na platformie niezdolnej do usunięcia otwartego pliku.Zostało to poprawione.
Zobacz commit 5bdece0 (15 grudnia 2018) autorstwa Johannesa Schindelina (
dscho
) .(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu 5104f8f , 18 stycznia 2019 r.)Aktualizacja styczeń 2016
Powinno to zostać naprawione w Git 2.8 (marzec 2016) (i zobacz Git 2.19, Q3 2018 poniżej)
Zobacz: commit d562102 , commit dcacb1b , commit df617b5 , commit 0898c96 (13 stycznia 2016) autorstwa Johannesa Schindelina (
dscho
) .(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu 3c80940 , 26 stycznia 2016 r.)To rozwiązuje
git-for-widows
problem 500 .Patrząc na test użyty do zweryfikowania tego nowego podejścia , możliwym obejściem (ponieważ Git 2.8 nie jest jeszcze dostępny) byłoby sztuczne podniesienie
gc.autoPackLimit
.git 2.8.4 (czerwiec 2016) nie wspomina o problemie 755, który również powinien złagodzić ten problem ( zatwierdzenie 2db0641 ):
W rzeczywistości wspomniany powyżej
git-for-windows
problem 500 został naprawiony w Git 2.19, trzeci kwartał 2018 r.Zobacz „ Git - odłączenie pliku
.idx
i.pack
niepowodzenie (Jedynym uchwytem do tego pliku jest procesgit.exe
) ”.źródło
To jest odpowiedź specyficzna dla systemu Windows, więc zdaję sobie sprawę, że nie jest ona dla Ciebie istotna ... Dołączam ją tylko dla przyszłych wyszukiwarek.
W moim przypadku było tak, ponieważ uruchamiałem Git z wiersza poleceń bez podwyższonych uprawnień. „Uruchom jako administrator” naprawił to za mnie.
źródło
Dla mnie było to spowodowane tym, że program Visual Studio próbował ponownie załadować wszystkie zmienione pliki z pull. Odśwież Visual Studio, a następnie uruchom
git gc
.źródło
W systemie Windows korzystającym z GitHub dla Windows otrzymałem podobny błąd w powłoce podczas uruchamiania
git gc
:Rozwiązałem to, zamykając GUI GitHub.
źródło
Spróbuj ponownie uruchomić Apache lub inny serwer WWW, ponieważ mógł zablokować niektóre pliki.
źródło
Zamknięto program Visual Studio i Rubymine i ponownie nie wystąpił błąd. Jeden z nich był winowajcą.
źródło
Zamknij IDE, a następnie zrób
git pull
. To będzie działać.źródło
Mam też ten problem, ale dowiedziałem się, że to UltraEdit w drodze, ponieważ użyłem UE do organizowania i edytowania mojego obszaru roboczego zaćmienia ~~
Może dlatego, że UE ma uchwyt na starą wersję konkretnego pliku, Git nie mógł go odłączyć.
Po zamknięciu UltraEdit problem nigdy się nie powtórzył.
źródło
W moim przypadku było to spowodowane kompilatorem SimpLESS, LESS. Musisz go zamknąć w zasobniku systemowym.
źródło
Problem polega na tym, że masz program obsługujący te pliki. Mam sugestię, że powinieneś użyć Unlockera, aby znaleźć program, który go obsługuje:
Unlocker
źródło
Zdarzyło mi się to w systemie Windows XP, zarówno z komunikatem, który utknął w pętli, jak i można było go wyczyścić, odpowiadając.
Wystąpienie utknięcia w pętli zostało usunięte przez zamknięcie Git-GUI. (Uruchomiłem git merge -i w powłoce bash.)
Inne zdarzenia miały miejsce prawdopodobnie z powodu dużej liczby plików w moim repozytorium. Stało się to głównie z plikami .cod, które później wyłączam z kontroli wersji. (Mam powód, aby dokładnie je śledzić.) Uważam, że przyczyna może być związana z szybkością, z jaką Git używa uchwytów plików.
Zastanawiam się, czy problem, który można wyczyścić przez odpowiedź, jest związany z systemem Windows, ponieważ dwa poprzednie plakaty wspominały o systemie Windows, a nikt nie powiedział, że ma problem z innymi systemami operacyjnymi.
źródło
Miałem otwarty PHPStorm, zamknąłem go i wszystko było dobrze.
źródło
Miałem ten sam problem i zamknąłem wszystkie powiązane programy z Menedżera zadań systemu Windows. Jednak nadal nie działał. Interesujące jest to, że zamiast „Git pull” uruchomiłem „Git rebase” i zadziałało!
źródło
Żadna z powyższych odpowiedzi nie działa dla mnie, ale uruchamiam polecenie git gc z opcją force i rozwiązało mój przypadek.
„git gc --force”
[Windows 7, uruchom jako administrator => wiersz polecenia]
źródło
Spróbuj uruchomić edytor wiersza poleceń w trybie administracyjnym i uruchom polecenie. Pomaga i rozwiązuje problem. :)
źródło
W moim przypadku miałem starą metodę przycinania tagów powodujących problem. Rozwiązałem to rozbrajając oryginał:
następnie dodając to do przycinania usuniętych gałęzi na serwerze:
źródło
Napotkałem ten sam błąd i rozwiązałem go, zamykając zaćmienie i ponownie pociągając, gdy plik był używany.
źródło