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
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