Aktualizacja 2019:
Od lipca 2019 roku , nastąpiła nowa komenda, która robi dokładnie to: git restore.
W git statusteraz Git zaleca używanie tego polecenia zamiast zwykłego git checkout.
Chociaż tego polecenia można również użyć do przywrócenia drzewa roboczego do określonego zatwierdzenia lub do przywrócenia zawartości indeksu, domyślnie drzewo robocze jest przywracane do stanu w indeksie (o co pyta się tutaj).
Aby przywrócić pliki pasujące do ścieżki (pozbyć się ich nieustawionych zmian), wykonaj następujące czynności:
git restore <pathspec>
Na przykład, aby przywrócić wszystkie niestabilne zmiany w bieżącym katalogu, możesz uruchomić:
git restore .
Jeśli uruchomisz to z katalogu głównego projektu, przywróci on wszystkie niestacjonarne zmiany w całym repozytorium.
Zauważ, że tak jak w przypadku git checkout -- .(jak zauważył Mariusz Nowak), spowoduje to jedynie odrzucenie zmian w plikach śledzonych przez Git i nie odrzuci żadnych nowych plików nieśledzonych. Jeśli chcesz odrzucić wszelkie nieustawione zmiany, w tym nowe nieśledzone pliki, możesz uruchomić dodatkowe:
git clean -df
Bądź jednak bardzo ostrożny z tym późniejszym poleceniem, ponieważ możesz odrzucić pliki, których nie zamierzałeś się pozbyć.
Uwaga git restore: ponieważ jest to nowe polecenie, jego strona podręcznika ostrzega:
To polecenie jest eksperymentalne. Zachowanie może się zmienić.
Możliwe więc, że ta odpowiedź może stać się nieaktualna, jeśli zachowanie zmieni się w przyszłości. Warto więc szybko uruchomić aplikację man git-restoreprzed jej użyciem.
git-cleanusuwa tylko nieśledzone pliki z działającego drzewa git-scm.com/docs/git-clean