Czy możesz wyjaśnić, co robi polecenie Git reset i w jakich scenariuszach jest używane?
sobes.tech AI
Odpowiedź od AI
Polecenie git reset służy do cofania zmian i przesuwania wskaźnika bieżącej gałęzi (HEAD) na inny commit. Może zmieniać stan indeksu (obszaru staging) i katalogu roboczego w zależności od parametrów.
Główne opcje:
-
git reset --soft <commit>— przesuwa HEAD na wskazany commit, pozostawiając zmiany w indeksie i katalogu roboczym. Używane do cofnięcia commitów, ale zachowania zmian do ponownego commitowania. -
git reset --mixed <commit>(domyślnie) — przesuwa HEAD i resetuje indeks, ale zmiany pozostają w katalogu roboczym. Pozwala na cofnięcie commitów i usunięcie zmian z indeksu. -
git reset --hard <commit>— przesuwa HEAD, resetuje indeks i katalog roboczy, całkowicie usuwając wszystkie zmiany po wskazanym commicie.
Przypadki użycia:
- Cofanie ostatnich commitów.
- Usuwanie zmian z indeksu.
- Całkowity powrót do poprzedniego stanu.
Przykład:
git reset --hard HEAD~1 # cofnięcie o jeden commit z usunięciem zmian