Kuo skiriasi git reset – mišrus, – minkštas ir – kietas?

Kuo Skiriasi Git Reset Misrus Minkstas Ir Kietas



Git kiekvienas įsipareigojimas yra susietas su ankstesniu įsipareigojimu, o HEAD nurodo naujausią įsipareigojimą darbo šakoje. Įsipareigojimų istorija saugoma kaip įsipareigojimų medis. Tačiau kartais kūrėjams reikia pakeisti įsipareigojimų istoriją. Šiuo tikslu „ $ git atstatyti ” komanda naudojama keisti „Git“ saugyklos istoriją ir ištaisyti padarytas klaidas.

Šiame straipsnyje trumpai paaiškinamas skirtumas tarp git reset – hard, –soft ir –mixed.

Kuo skiriasi git reset – mišrus, – minkštas ir – kietas?

„Git“ siūlo kelias atkūrimo parinktis. Atsižvelgiant į tai, kaip jie tvarko įsipareigojimus, visos galimos parinktys skiriasi viena nuo kitos. Jie visi modifikuoja Git istoriją ir perkelia HEAD atgal. Be to, jie skirtingai tvarko pakeitimus, pavyzdžiui:







  • – minkštas “ parinktis naudojama kartu su „ $ git atstatyti “ komandą, kad išsaugotumėte failus ir grąžintumėte įsipareigojimo pakeitimus į Git sustojimo indeksą.
  • $ git reset – mišrus “ naudojamas norint anuliuoti pakeitimus ir pašalinti failą iš sustojimo indekso, neištrinant jo iš darbo katalogo.
  • -sunku “ parinktis su „ $ git atstatyti ” komanda naudojama visiems pakeitimams ištrinti ir pašalinti iš vietinio darbo katalogo.

Paimkime pavyzdį, kad pamatytume, kaip „ $ git atstatyti “ komanda veikia su skirtingomis parinktimis!



1 veiksmas: eikite į pageidaujamą „Git“ saugyklą

Pirmiausia pereikite į norimą „Git“ saugyklą naudodami „ cd “ komanda:



$ cd 'C:\Eik \t is_repo'





2 veiksmas: sukurkite failą

Dabar vykdykite toliau pateiktą komandą, kad sukurtumėte failą:

$ liesti Failas4.txt



3 veiksmas: pridėkite failą prie sustojimo indekso

Naudoti ' git pridėti “ komanda, kad pridėtumėte naujai sugeneruotą failą į sustojimo indeksą:

$ git pridėti Failas4.txt

4 veiksmas: atlikite pakeitimus

Tada pridėkite visus pakeitimus prie veikiančios saugyklos vykdydami „ git commit “ komanda:

$ git commit -m „4 failas pridėtas“

5 veiksmas: patikrinkite „Git Log“.

Tada patikrinkite „Git“ žurnalo istoriją, kad peržiūrėtumėte naujausius pridėtus įsipareigojimus:

$ git žurnalas

Žemiau esančiame išvestyje matoma, kad rodomi visi paskutiniai pridėti įsipareigojimai, o „ GALVA “ nurodo į neseniai įvykdytą įsipareigojimą:

Pastaba: Norėdami geriau patikrinti dabartinę HEAD nukreipimo padėtį, vykdykite „ git žurnalas “ komanda kartu su „ -viena linija “ vėliava:

$ git žurnalas --prisijungęs

Žemiau pateiktoje išvestyje rodomas įvykdymo SHA maišos sąrašas su patvirtinimo pranešimais:

6 veiksmas: naudokite git reset – soft Command

Norėdami grąžinti pridėtus pakeitimus iš „Git“ saugyklos į sustojimo indeksą, naudokite „ git atstatyti “ komanda kartu su „– minkštas “ parinktį ir nurodykite norimą HEAD padėtį, kur reikia perkelti žymeklį:

$ git atstatyti -- minkštas GALVA~ 1

7 veiksmas: patikrinkite „Git“ būseną

Dabar patikrinkite HEAD grįžtamąją padėtį ir patikrinkite Git saugyklos būseną:

$ git statusas

Galima pastebėti, kad „ git reset – minkštas ” komanda grąžino įsipareigojimo pakeitimus į Git sustojimo indeksą. Be to, „ Failas4.txt “ failas dabar yra „Git“ sustojimo indekse ir turi būti patvirtintas:

8 veiksmas: patikrinkite „Git Log“.

Norėdami peržiūrėti dabartinę HEAD padėtį, paleiskite nurodytą komandą kartu su ' -viena linija “ variantas:

$ git žurnalas --prisijungęs

Čia GALVA rodo į „ Failas3 “ įsipareigoti:

9 veiksmas: naudokite git reset – mišrią komandą

Norėdami anuliuoti atliktus pakeitimus ir pašalinti failus iš sustojimo srities, neištrindami jų iš darbo katalogo, paleiskite „ $ git reset – mišrus ” komandą kartu su reikiama įsipareigojimo HEAD padėtimi:

$ git atstatyti --mišrus GALVA~ 1

10 veiksmas: patikrinkite „Git“ būseną

Peržiūrėkite naujai pridėtus pakeitimus patikrinę „Git“ saugyklos būseną:

$ git statusas

Galima pastebėti, kad nurodyti įsipareigojimų pakeitimai pašalinami iš sustojimo srities. Tačiau jie yra darbo zonoje:

11 veiksmas: patikrinkite „Git Log“.

Patikrinkite „Git“ saugyklos nuorodų žurnalo istoriją kartu su SHA maiša:

$ git žurnalas --prisijungęs

12 veiksmas: naudokite git reset – kietąją komandą

Norėdami pašalinti pridėtus pakeitimus iš Git vietinio darbo katalogo, paleiskite „ $ git atstatyti – sunku “ komanda:

$ git atstatyti --sunku GALVA~ 1

13 veiksmas: patikrinkite grąžintą HEAD rodyklę

Norėdami patikrinti HEAD žymeklį, grįžkite į nurodytą padėtį, paleiskite „ git žurnalas “ komanda:

$ git žurnalas --prisijungęs

Žemiau esanti išvestis rodo, kad HEAD nurodo „ 1 failas pridėtas “ įsipareigoti:

14 veiksmas: patikrinkite „Git“ būseną

Norėdami peržiūrėti pridėtus pakeitimus, patikrinkite „Git“ būseną:

$ git statusas

Matyti, kad mes neturime jokio takelio ir laukiančių pakeitimų Failas2.txt “ failą. Todėl failas File2.txt buvo visiškai pašalintas:

15 veiksmas: patikrinkite saugyklos turinio sąrašą

Norėdami patikrinti saugyklos turinio sąrašą, paleiskite „ ls “ komanda:

$ ls

Kaip matote, „ Failas2.txt “ failo dabartiniame kataloge nėra:

Mes paaiškinome skirtumą tarp git reset – mišrių, minkštųjų ir kietųjų parinkčių.

Išvada

git atstatyti ” komanda naudojama pakeitimams iš naujo nustatyti, Git saugyklos istorijai modifikuoti ir klaidoms taisyti. „ git reset – minkštas ” komanda išsaugo failus ir grąžina įpareigojimo pakeitimus į „Git“ sustojimo sritį. Priešingai, „ git reset – mišrus ” komanda anuliuoti įvykdymo pakeitimus ir pašalinti failą iš sustojimo indekso neištrindami jo iš darbo katalogo. Norėdami ištrinti visus pakeitimus ir pašalinti juos iš „Git“ darbo srities, „ git reset – sunku “ gali būti naudojama komanda. Šis straipsnis iliustruoja skirtumą tarp git reset – mišri, – minkšta ir – kieta.