2013-03-15 8 views
91

Zrobiłem ciągnięcie git i otrzymałem komunikat o błędzie "Następujące pliki drzewa roboczego zostaną nadpisane przez scalenie ... Proszę je przenieść lub usunąć przed scaleniem". Aby rozwiązać ten problem zrobiłem następującyJakie jest znaczenie resetowania git - hard origin/master?

git fetch 
git reset --hard origin/master 

Teraz kiedy zrobić git pull, to mówi wszystko do date.I chcą wiedzieć, co dokładnie się dzieje, kiedy uruchomić te polecenia. Wiem, że git fetch pobiera zmiany z zdalnego repo bez scalania ich z moim lokalnym repozytorium.

Jakie jest znaczenie git reset --hard origin/master? Jak to działa?

Odpowiedz

176
git reset --hard origin/master 

mówi: wyrzucić wszystkie moje inscenizacja, Unstaged zmian, zapomnieć o wszystkim na moim aktualnym miejscowym oddziale i sprawiają, że dokładnie tak samo jak origin/master.

Prawdopodobnie chciałeś o to zapytać zanim wykonałeś polecenie. Destrukcyjna natura jest podpowiedziana za pomocą tych samych słów, co w "twardym resetowaniu".

+5

Możesz cofnąć ten ruch, używając 'git reset --hard HEAD @ {1}'. 'HEAD @ {1}' zmienia się w zależności od sytuacji, więc radzimy szukać go w 'git reflog'. –

+0

Należy pamiętać, że metoda @ NilsWerner do cofania ruchu nie przywraca zmian etapowych i niestabilnych. Te zniknęły na dobre. –

+1

Pliki etapowe nadal można znaleźć za pomocą 'git fsck --lost-found', ale nie zostaną one dołączone do oryginalnej ścieżki do pliku i mogą być trudne do sortowania. –

Powiązane problemy