Reset ja revert

Reset vs Revert

Nii reset kui ka revert on käsud, mis on mõeldud Git-is muudatuste tagasivõtmiseks. Peamine erinevus seisneb selles, millise jälje nad endast maha jätavad ning seeläbi projekti ajalugu mõjutavad.

Git Reset

Git reset on justkui aja tagasikeeramine - sellega liigutakse tagasi mingi kindla commit-i juurde. Täpsemalt liiguvad haru pointer (viide viimasele commit-ile mingi kindla haru ajaloos) ja HEAD (viide viimasele commit-ile selles harus, kus parasjagu töötad).

Git reset-i saab teha kolmel erineval viisil:

  • Soft reset (--soft)

Giti soft reset on viis tehtud muudatuste tagasivõtmiseks ja konkreetse commit-i juurde naasmiseks, säilitades tehtud muudatused. See liigutab pointer-i ja HEAD-i valitud kohta, kuid jätab Sinu muudatused staged olekusse.

Staged muudatused on sellised, mis on küll salvestatud, aga mida pole veel commit-itud. Muudatuste stage’imiseks kasutatakse git add käsku.

  • Mixed reset (vaikimisi)

Selle käsuga liigutatakse pointer-it ja HEAD-i ning staged staatuses olevad muudatused pole enam staged olekus. Varem staged olekus olnud failid küll säilitavad oma muudatused, aga need peab peale reset-i uuesti git add abil stage’ima.

See on kasulik olukorras, kus tahad muudatused tühistada, aga siiski hoida need enda töökataloogis.

  • Hard reset (--hard)

Selle käsuga liiguvad pointer ja HEAD, tühjendatakse staging area ja tühistatakse kõik muudatused töökataloogis. Lühidalt - kustutatakse kõik commit-imata muudatused.

Git revert

Git revert on justkui turvalisem versioon git reset-ist. See loob uue commit-i, et tühistada mingi varasema commit-i poolt sisse toodud muudatused. Erinevalt git reset-ist ei muuda (kirjuta üle) revert ajalugu, vaid hoopis lisab sellele.

Kokkuvõte

../../_images/resetrevert.png

Kasuta git reset-i, kui soovid harus tehtud muudatused tühistada. See on kasulik, kui oled teinud vea või kui soovid puhtalt lehelt alustada.

Kasuta git revert-i, kui soovid tagasi võtta repos tehtud muudatusi. See on kasulik, kui oled commit-is teinud vea või kui tahad muuta seda, kuidas commit tehtud on.

Kasutatud materjalid