Sobes.tech
Junior — Middle

Ar galite paaiškinti, ką daro Git reset komanda ir kokiuose scenarijuose ją naudoja?

sobes.tech AI

Atsakymas iš AI

git reset komanda naudojama pakeitimų atšaukimui ir dabartinės šakos (HEAD) rodyklės perkėlimui į kitą commit'ą. Ji gali keisti indekso (staging area) ir darbo katalogo būseną priklausomai nuo parametrų.

Pagrindinės parinktys:

  • git reset --soft <commit> — perkelia HEAD į nurodytą commit'ą, palikdama pakeitimus indekse ir darbo kataloge. Naudojama commit'ų atšaukimui, bet pakeitimai išsaugomi naujam commit'ui.

  • git reset --mixed <commit> (numatyta) — perkelia HEAD ir atstatinėja indeksą, bet pakeitimai lieka darbo kataloge. Leidžia atšaukti commit'us ir pašalinti pakeitimus iš indekso.

  • git reset --hard <commit> — perkelia HEAD, atstatinėja indeksą ir darbo katalogą, visiškai ištrindama visus pakeitimus po nurodyto commit'o.

Naudojimo scenarijai:

  • Paskutinių commit'ų atšaukimas.
  • Pakeitimų pašalinimas iš indekso.
  • Pilnas grįžimas į ankstesnę būseną.

Pavyzdys:

git reset --hard HEAD~1  # grįžti vienu commit'u atgal ir ištrinti pakeitimus