Jak mogę pozbyć się wszystkich zmian we wszystkich plikach mojego repozytorium?
Powiedzmy, że jestem w branży i dokonałem pewnych zmian. git status
zwraca zestaw plików w polu „Zmiany nie zostały wprowadzone do zatwierdzenia” i zauważam, że chciałbym pozbyć się wszystkich tych zmian we wszystkich plikach. Jak mogę to zrobić jednym poleceniem?
Wiem, że mogę wykonać następujące czynności, aby pobrać tylko jeden plik:
git checkout -- <file>
Zauważyłem, że git checkout --
sam zwraca listę wszystkich niezaakceptowanych plików. Jednak nie mogę znaleźć sposobu, aby sprawdzić je wszystkie, coś w stylu git checkout --all
.
Sprawdziłem man git checkout
i nic nie znalazłem. Widziałem również Git: Checkout wszystkie pliki oprócz jednego i próbowałem git checkout .
i też nie działało.
Czy musiałbym to zrobić programowo, przechodząc przez git checkout --
wyjście?
źródło
git checkout -- .
zresetuje tylko zmiany stanu indeksu. Więc jeśli już dodałeś pliki do indeksu, do tego zostanie zresetowany. Z drugiej stronygit reset --hard
również wyrzuci indeks, więc na przykład jeśli masz nieśledzone pliki dodane do indeksu (aby rozpocząć ich śledzenie), zostaną one również usunięte.git checkout
umożliwia również przywrócenie katalogu roboczego tylko częściowo, przekazując bardziej szczegółową ścieżkę, która może być bardzo przydatna.git checkout --force
,git reset --hard
Innym sposobem, który uznałem za przydatny, jest:
Przykład:
Bardziej ogólnie:
źródło
git checkout \*
Lubgit checkout '*'
.