Sobes.tech
Junior — Middle

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