Aktualizacja 2019:
Od lipca 2019 roku , nastąpiła nowa komenda, która robi dokładnie to: git restore
.
W git status
teraz 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-restore
przed jej użyciem.
git-clean
usuwa tylko nieśledzone pliki z działającego drzewa git-scm.com/docs/git-clean