Robiłem mój projekt, podczas gdy w pewnym momencie odkryłem, że jedno przestało działać. Musiałem sprawdzić stan mojego kodu, kiedy działał poprawnie, więc zdecydowałem się na skorzystanie z git-checkout (ponieważ chciałem coś sprawdzić). I tak zrobiłemGit checkout - przejście z powrotem na HEAD
git checkout SHA
kilka razy, podczas gdy wracając do punktu, z którego nie mogę iść do głowy, wyjście jest następujące:
git checkout SHA-HEAD
error: Your local changes to the following files would be overwritten by checkout:
[list of files]
Please, commit your changes or stash them before you can switch branches.
Aborting
Jestem prawie pewien, że nie ma zmienił wszystko. Polecenie
-git checkout master
daje takie same wyniki.
Czy istnieje sposób, aby wrócić do głowy?
Jaki jest bezpieczny sposób „przeskakując” historia zobowiązuje?
Jeśli nie chcesz, aby te zmiany 'git czysty -f' wyczyści wszystkie nieśledzone plików. Następnie sprawdź na master – gmuraleekrishna
Komunikat 'error: ...' oznacza, że ty - lub coś, co zrobiłeś, być może pośrednio - * zmieniłeś * pliki. Możesz powiedzieć Gitowi, aby odrzucił lub nadpisał te zmiany, lub użyj 'git status' i/lub' git diff', aby zobaczyć, co dokładnie się zmieniło. Może to być tak proste jak jakaś kończąca linię modyfikacja lub jakieś polecenie działające w tle, które zapisało do pliku. (Na marginesie: "wróć do HEAD" nie ma sensu w Git, jak zawsze * zawsze * na HEAD: "HEAD" dosłownie oznacza "current commit." Możesz * zmienić * HEAD, po którym nadal jesteś na HEAD , tylko inna HEAD. To jest ... trudne do wyrażenia. :-)) – torek
Git jest załadowany mechanizmami, więc tutaj są dwa: 'git reset --hard HEAD' oznacza" zresetować indeks i drzewo pracy do dopasowania HEAD ", tj. Wyrzuca zmiany. Lub: 'git checkout -f master' oznacza" zmień HEAD na "master", nawet jeśli oznacza to wyrzucenie trochę pracy ":" -f "oznacza" force ". – torek