Coś nie tak dzieje się z jednym z plików w moim lokalnym repozytorium git. Kiedy próbuję zmienić gałąź, mówi:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Co to może znaczyć?
Coś nie tak dzieje się z jednym z plików w moim lokalnym repozytorium git. Kiedy próbuję zmienić gałąź, mówi:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Co to może znaczyć?
Odpowiedzi:
Może to oznaczać, że inny program korzysta z pliku, co uniemożliwia gitowi „przeniesienie” pliku do lub z katalogu roboczego podczas próby zmiany gałęzi.
Zdarzyło mi się to w systemie Windows Vista, w którym zaćmienie to program „używający” pliku. Plik może nie być w rzeczywistości otwarty w środowisku Eclipse, ale mógł zostać otwarty przez proces uruchamiany przez środowisko Eclipse.
W takim przypadku spróbuj zamknąć plik w dowolnej aplikacji, która mogła go użyć. Jeśli to nie zadziała, całkowicie zamknij wszystkie aplikacje, które mogły otworzyć plik.
GitKraken
możesz go otrzymać, wykonując polecenia jak
Miałem ten problem i rozwiązałem go poleceniem: git gc
powyższe polecenie usuwa temp i niepotrzebne pliki. (Śmieciarz.)
git pull
inicjowane git gc
automatycznie i gc próbował uzyskać dostęp do niektórych plików .pack i .inx. Były one utrzymywane przez proces „Windows git”, który posiadał git pull
polecenie. Uruchamianie git gc
ręczne i git pull
później - naprawdę rozwiązuje problem.
git gc
ponownie pojawił się ten sam błąd, gdy gc
był w toku
to rozwiązanie tutaj działało dla mnie:
Jest to odpowiedź specyficzna dla systemu Windows, więc jestem świadomy, że nie jest ona dla ciebie odpowiednia ... Po prostu uwzględniam ją z korzyścią dla przyszłych użytkowników.
W moim przypadku było tak, ponieważ uruchomiłem Git z wiersza poleceń bez podniesionego poziomu uprawnień. „Uruchom jako administrator” naprawiło to dla mnie.
Ctrl+C
wpisałem, aby zakończyć bardzo długą listę plików, których nie można odtworzyć; opuściłem gitbash, my IDE i aplikację Windows GitHub; zrestartowałem gitbash w podwyższonym trybie „Uruchom jako administrator”; i pobiegł git gc --aggressive
. Zajęło to trochę czasu, ale udało się to bez błędów.
Napotkałem ten problem podczas robienia git pull
.
Próbowałem git gc
i to rozwiązało mój problem.
W moim przypadku nie ma procesów dotykających pliku lub katalogu. Może się zdarza, jeśli ścieżka jest bardzo długa, ponieważ ograniczenie systemu operacyjnego (Windows). Spróbuj włączyć flagę obsługi długiej ścieżki w globalnej konfiguracji git, jak pokazano poniżej:
git config --global core.longpaths true
lub spróbuj ustawić flagę odpowiedzi tak / nie, jeśli nie jest dla ciebie sprzeczna
set GIT_ASK_YESNO=false
Jeśli ścieżka jest za długa, nie znalazłem udanego rozwiązania.
GIT_ASK_YESNO
, nie mogę znaleźć informacji o tym. Skąd to pochodzi ?
core.longpaths
z dodatkowym: reset - twardy prune gc działał dla mnie - ale musiał zamknąć AndroidStudio, aby nie zepsuć się jego
Próbowałem git gc
i to rozwiązało mój problem.
Może to być przydatne dla kogoś; jeśli wszystkie powyższe nie zadziałały, wykonaj następujące kroki:
Zamknij swoje IDE (moje to Eclipse, nie jestem pewien, czy dotyczy Intellij i innych) lub jakiejkolwiek innej aplikacji, która może używać git.
Otwórz git z wiersza poleceń (w moim przypadku miałem git bash) i uruchom git gc
jak wspominali inni.
To zrobiło dla mnie magię.
Gdy używam gitkraken i wiersza polecenia, napotkałem ten sam problem. A potem uruchamiam git gc
polecenie, co rozwiązało mój problem. Cieszę się więc i chcę podzielić się niektórymi punktami, które mogą być pomocne.
Co git gc
zrobisz
git gc
usuwanie nieosiągalnych obiektów, które mogły zostać utworzone na podstawie wcześniejszych wywołań git add.
Kiedy biegać git gc
?
Od doc zachęca użytkowników do regularnego uruchamiania tego zadania w każdym repozytorium, aby utrzymać dobre wykorzystanie miejsca na dysku i dobrą wydajność operacyjną.
Jak ustawić automatyczne konfigurowanie?
Niektóre polecenia git mogą automatycznie uruchamiać git gc; szczegóły - patrz flaga --auto poniżej. Jeśli wiesz, co robisz i chcesz tylko trwale wyłączyć to zachowanie bez dalszych rozważań, po prostu zrób to
git config --global gc.auto 0
W moim przypadku (Win8.1, uruchomiony TortoiseGit) to proces o nazwie „Pamięć podręczna stanu TortoiseSVN” blokował plik.
Zabicie go pozwoliło mi uruchomić „git gc” bez żadnych problemów. Powyższy proces jest uruchamiany przez TortoiseGit, więc nie ma potrzeby ręcznego restartowania go.
Miałem tego rodzaju problem z Windows 7 i okazało się, że jest to spowodowane osieroconym git.exe
procesem.
Aby go rozwiązać, otwórz Menedżera zadań i zabij wszystkie git.exe
procesy.
Ponieważ git
polecenia są krótkotrwałe, zwykle nie powinno się ich nigdy widzieć git.exe
w Menedżerze zadań. Kiedy tam są, zwykle oznacza to, że coś jest nie tak i powinieneś zabić te procesy.
W systemie Windows 8: uruchomiłem git gc i powiedziało, że git gc już działa, uruchomiłem git gc --force i uruchomił się moduł odśmiecania.
Mógłbym wtedy przełączać gałęzie i łączyć się bez żadnych problemów, spróbuj git gc --force.
Być może proces gc nie zatrzymał się z wdziękiem z tego czy innego powodu.
Miałem ten problem z .tmp
plikami w /.git/objects/pack
folderze. Myślę, że coś się nie udało podczas wypychania lub ściągania, więc usunąłem te pliki tymczasowe i zresetowałem HEAD do ostatniego zatwierdzenia. Nie jestem pewien, czy jest to zalecane, ale zadziałało dla mnie. Również git count-objects -v
dał mi listę .tmp
plików, które nie należą do folderu pack.
Lub, aby ukryć wiadomości r / n w systemie Windows git open cmd.exe
i uruchomić:
SETX GIT_ASK_YESNO false
tutaj: https://twitter.com/petercamfield/status/494805475733807104
git gc
, git count-objects -v
pomaga w identyfikacji pozostałości obiektów tymczasowych w pack
folderze.
Byłem w stanie rozwiązać ten problem, otwierając Powershell jako Administrator i stamtąd
git checkout <branch_name>
Napotkałem ten sam problem podczas wykonywania „git pull”. Próbowałem ręcznego czyszczenia komendy git „git gc” i to rozwiązało mój problem.
Po uruchomieniu polecenia
git rm -rf foo.bar
Widzę błąd
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
Ponieważ inny program używa tego pliku . Na przykład, kiedy uruchamiam aplikację internetową Java w modelu debugowania lub uruchamiam aplikację internetową na serwerze, nie mogę usunąć pliku dziennika. Wyłącz serwer aplikacji (lub wyłącz proces debugowania), spróbuj ponownie
git rm -rf foo.bar
Widzę, że plik został usunięty.
Po tym, jak żadna z powyższych odpowiedzi nie zadziałała, bieganie git fetch -p
zrobiło to za mnie.
Natknąłem się na ten problem w systemie Windows, możesz uruchomić git bash jako administrator, a następnie wykonać polecenia, które rozwiązały problem.
Próbowałem każdej wskazówki na tej stronie i nic nie pomogło. Robiłem a git fetch
i git reset --hard origin/development
dał mi błąd unkink. Nie mogłem zresetować do ostatniego zatwierdzenia.
Pomogło mi sprawdzenie innej gałęzi, a następnie sprawdzenie poprzedniej gałęzi. Bardzo dziwne, ale rozwiązało problem.
Jeśli używasz Dockera i systemu Windows 10, możesz zatrzymać kontenery, w których plik może być uruchomiony. Aby wyświetlić statusy swoich kontenerów, uruchom
docker ps -a
Aby je zatrzymać, po prostu biegnij
docker stop <container name or container id>
To działało dla mnie, ponieważ uruchamiam moje lokalne pliki przy użyciu pliku .sh
W systemie Windows ten błąd git clone
występował na (dość dużym) repozytorium. Zamknięty SmartGit i przerwał moje kopii oprogramowania (CrashPlan), a potem to działało. Nie jestem pewien, który z nich zrobił lewę, ale jeśli uruchomisz któryś z nich, może to zrobić również dla ciebie.
Miałem ten sam problem podczas wykonywania ściągania git i jak wspomniano powyżej, było to spowodowane programem, który przechowywał te pliki i nie pozwalał na ściąganie git. Zamknięcie programu pomogło. Zwykle IDE (jak Eclipse), z którego sprawdzane są pliki, będzie trzymał je w tle. Zamknięcie tego samego i ponowne uruchomienie git pull rozwiązało problem dla mnie.
Miałem ten sam błąd, a zamknięcie aplikacji, w której plik był otwarty, rozwiązało problem. Byłem w stanie wrócić i nacisnąć „Y”