2017-05-17 32 views
5

Kiedy robię git pull, z git bash, terminal zwykle uruchamia ciągnięcie, aktualizuje mój lokalny, a następnie zawiesza się. Nie jestem pewien, czy czeka na mnie, abym coś zrobił, ale zwykle z tego rezygnuję z CTRL-C. Po tym, dostaję, że index.lock uniemożliwia mi wykonywanie innych rzeczy, do których muszę go usunąć. Czy nie rozumiem, jak działa git pull?Dlaczego git pull się zawiesza?

+8

W terminalu wykonaj jako jedną instrukcję 'GIT_TRACE = true git pull', a następnie sprawdź, czy możesz zobaczyć, co robi, gdy się zawiesi. –

+0

Czy jesteś w systemie Windows? Jeśli tak, a jeśli zawiesi się podczas kroku 'git merge', czy masz jakiś proces uruchamiania, który blokuje jakiś plik? System Windows ma "obowiązkowe blokowanie", w którym jeśli proces * A * ma zablokowany plik, a proces * B * (Git) próbuje * użyć * tego pliku, proces * B * jest wstrzymany, aż * A * zwolni blokadę. Jeśli zakończysz * B * (tj.^C z Git), najlepiej wyczyść jego plik 'index.lock' (który nie korzysta z obowiązkowego blokowania systemu Windows, jest to zwykły plik, który Git używa do skoordynowania ze sobą), ale widocznie tak nie jest. – torek

Odpowiedz

-1

Jestem w systemie Windows i rozwiązałem zawieszenie, zamykając Visual Studio przed wykonaniem polecenia pull.

+0

(W Mac OS X) Miałem kod Visual Studio otwarty i wisiał na 'git pull'. Zamknął to. Czy 'git pull' ponownie i VS Code uruchomił i otworzył komunikat zatwierdzenia dla' scalania', który był potrzebny z powodu 'git pull'. Wprowadzono wiadomość, zapisano, zamknąłem okno i wszystko było dobrze. – Jheasly

-1

Jeśli wyciągając z komputera linux może chcesz sprawdzić ten plik

/etc/ssh/ssh_config

aby upewnić się, że nie jesteś ustawienie domyślnego portu SSH do czegoś innego niż 22. Niektórzy ludzie mylić między tym pliku oraz:

/etc/ssh/sshd_config

Kiedy oni konfigurowania serwerów na niestandardowym porcie SSH.