Sobes.tech
Junior

Kaip atšaukti paskutinį commit versijų valdymo sistemoje?

sobes.tech AI

Atsakymas iš AI

Naudojant Git, yra keletas būdų:

1. Paskutinio įsipareigojimo atšaukimas, išsaugant pakeitimus:

git reset --soft HEAD~1
# Paskutinio įsipareigojimo atšaukimas, indeksuoti pakeitimai lieka
# Darbo katalogas nepasikeičia

2. Paskutinio įsipareigojimo atšaukimas, atšaukiant indeksuotus pakeitimus, bet išsaugant darbo pakeitimus:

git reset --mixed HEAD~1
# Paskutinio įsipareigojimo atšaukimas ir indeksavimo pakeitimų pašalinimas
# Darbo katalogas nepasikeičia

3. Visapusiškas paskutinio įsipareigojimo atšaukimas, įskaitant pakeitimus:

git reset --hard HEAD~1
# Visapusiškas paskutinio įsipareigojimo atšaukimas
# Indeksuoti pakeitimai ir darbo katalogas grįš į būseną prieš paskutinį įsipareigojimą
# Visi neišsaugoti pakeitimai darbo kataloge bus prarasti

4. Sukurti naują įsipareigojimą, kuris atšaukia paskutinio pakeitimus:

git revert HEAD
# Sukuria naują įsipareigojimą, kuris atšaukia paskutinio įsipareigojimo pakeitimus
# Istorija išlieka, tai saugus būdas dirbti su viešomis šakomis

Pasirinkimas priklauso nuo norimo rezultato ir ar šaka buvo paskelbta. --hard turi būti naudojamas atsargiai, nes gali sukelti duomenų praradimą. git revert yra pageidautinas, kai dirbate su kitų kūrėjų naudojamomis šakomis.