Właśnie zrobiłem
git commit -m "blah"
następnie dodałem kilka plików, jak mogę przywrócić i usunąć to, co jest w moich bieżących plikach, które nie zostały jeszcze dodane / zatwierdzone?
Właśnie zrobiłem
git commit -m "blah"
następnie dodałem kilka plików, jak mogę przywrócić i usunąć to, co jest w moich bieżących plikach, które nie zostały jeszcze dodane / zatwierdzone?
Odpowiedzi:
Caveat Emptor - Niszczycielskie rozkazy przed nami.
Łagodzenie - git reflog może cię uratować, jeśli tego potrzebujesz.
1) COFNIJ zmiany lokalnego pliku i ZACHOWAJ ostatnie zatwierdzenie
git reset --hard
2) COFNIJ zmiany lokalnego pliku i USUŃ ostatnie zatwierdzenie
git reset --hard HEAD^
3) ZACHOWAJ zmiany w lokalnych plikach i USUŃ ostatnie zatwierdzenie
git reset --soft HEAD^
Jeśli chcesz usunąć nowo dodane treści i pliki, które są już w fazie przejściowej (czyli dodane do indeksu), użyj:
git reset --hard
Jeśli chcesz usunąć także swoje ostatnie zatwierdzenie (to z komunikatem „bla”), lepiej użyj:
git reset --hard HEAD^
Aby usunąć nieśledzone pliki (czyli nowe pliki, które nie zostały jeszcze dodane do indeksu) i foldery, użyj:
git clean --force -d
git reset --hard wymusi powrót katalogu roboczego do ostatniego zatwierdzenia i usunie nowe / zmienione pliki.
Możesz cofnąć zatwierdzenie, używając git revert HEAD^do powrotu do przedostatniego zatwierdzenia. Możesz także określić zatwierdzenie do cofnięcia za pomocą id zamiast HEAD ^
Jeśli chcesz po prostu cofnąć zatwierdzenie ostatniego zatwierdzenia, użyj tego:
git reset HEAD~
działają dla mnie jak urok.
Łatwym i niezawodnym sposobem cofania zmian w pliku lokalnym od ostatniego zatwierdzenia jest umieszczenie ich w nowej gałęzi:
git branch changes
git checkout changes
git add .
git commit
Pozostawia to zmiany w nowej branży. Wróć do oryginalnej gałęzi, aby znaleźć ją z powrotem do ostatniego zatwierdzenia:
git checkout master
Nowa gałąź jest dobrym miejscem do ćwiczenia różnych sposobów cofania zmian bez ryzyka zepsucia oryginalnej gałęzi.