Kāda ir atšķirība starp git atiestatīšanu – jauktu, mīksto un cieto?

Kada Ir Atskiriba Starp Git Atiestatisanu Jauktu Miksto Un Cieto



Izmantojot Git, katra apņemšanās ir saistīta ar iepriekšējo apņemšanos, un HEAD norāda uz jaunāko saistību izpildi darba filiālē. Saistību vēsture tiek saglabāta kā saistību koks. Tomēr dažreiz izstrādātājiem ir jāmaina saistību vēsture. Šim nolūkam ' $ git atiestatīšana ” komanda tiek izmantota, lai modificētu Git repozitorija vēsturi un labotu pieļautās kļūdas.

Šajā rakstā īsumā tiks izskaidrota atšķirība starp git reset – hard, –soft un –mixed.

Kāda ir atšķirība starp git atiestatīšanu – jauktu, mīksto un cieto?

Git nodrošina vairākas atiestatīšanas iespējas. Pamatojoties uz to, kā viņi apstrādā saistības, visas pieejamās iespējas atšķiras viena no otras. Viņi visi maina Git vēsturi un pārvieto HEAD atpakaļ. Turklāt viņi atšķirīgi apstrādā izmaiņas, piemēram:







  • ' -mīksts ' opcija tiek izmantota kopā ar ' $ git atiestatīšana ” komandu, lai saglabātu failus un atgrieztu Git stadijas indeksā veiktās izmaiņas.
  • ' $ git reset – jaukts ” tiek izmantots, lai atsauktu izmaiņas un noņemtu failu no pakāpju indeksa, neizdzēšot to no darba direktorija.
  • ' – grūti ' opciju ar ' $ git atiestatīšana ” komanda tiek izmantota, lai izdzēstu visas izmaiņas un noņemtu tās no vietējā darba direktorija.

Ņemsim piemēru, lai redzētu, kā “ $ git atiestatīšana ” komanda darbojas ar dažādām opcijām!



1. darbība: dodieties uz vēlamo Git krātuvi

Vispirms pārejiet uz vēlamo Git repozitoriju, izmantojot “ cd ” komanda:



$ cd 'C:\Iet \t ir_repo'





2. darbība: izveidojiet failu

Tagad izpildiet tālāk norādīto komandu, lai izveidotu failu:

$ pieskarties Fails4.txt



3. darbība: pievienojiet failu pieturas rādītājam

Izmantojiet ' git pievienot ” komandu, lai pievienotu jaunizveidoto failu inscenēšanas indeksam:

$ git pievienot Fails4.txt

4. darbība: veiciet izmaiņas

Pēc tam pievienojiet visas izmaiņas darba repozitorijā, izpildot “ git commit ” komanda:

$ git commit -m 'Fails4 pievienots'

5. darbība: pārbaudiet Git žurnālu

Pēc tam pārbaudiet Git žurnāla vēsturi, lai skatītu jaunākās pievienotās saistības:

$ git žurnāls

Zemāk esošajā izvadā var redzēt, ka tiek parādītas visas jaunākās pievienotās saistības, un “ GALVA ” norāda uz neseno apņemšanos:

Piezīme: Lai labāk pārbaudītu HEAD pašreizējo norādes pozīciju, izpildiet ' git žurnāls ' komanda kopā ar ' – vienlīnija ” karogs:

$ git žurnāls -- tiešsaistē

Zem dotās izvades tiek parādīts commit SHA hash saraksts ar commit ziņojumiem:

6. darbība: izmantojiet git reset — soft Command

Lai atjaunotu pievienotās izmaiņas no Git repozitorija uz pieturas indeksu, izmantojiet “ git atiestatīšana ” komandu kopā ar “– mīksts ” opciju un norādiet vēlamo HEAD pozīciju, kur jāpārvieto rādītājs:

$ git atiestatīšana --mīksts GALVA~ 1

7. darbība: pārbaudiet Git statusu

Tagad pārbaudiet HEAD atgriešanās pozīciju un pārbaudiet Git repozitorija statusu:

$ git statuss

Var redzēt, ka ' git reset – soft ” komanda ir atgriezusi Git stadijas indeksā veiktās izmaiņas. Turklāt ' Fails4.txt ” fails tagad atrodas Git stadijas rādītājā, un tas ir nepieciešams:

8. darbība: pārbaudiet Git žurnālu

Lai skatītu pašreizējo HEAD pozīciju, palaidiet doto komandu kopā ar ' – vienlīnija ” opcija:

$ git žurnāls -- tiešsaistē

Šeit GALVA norāda uz ' Fails3 ” apņemties:

9. darbība. Izmantojiet git reset — jauktu komandu

Lai atsauktu veiktās izmaiņas un noņemtu failus no pieturvietas, neizdzēšot tos no darba direktorija, izpildiet ' $ git reset – jaukts ” komandu kopā ar nepieciešamo apņemšanās pozīciju HEAD:

$ git atiestatīšana -- jaukts GALVA~ 1

10. darbība: pārbaudiet Git statusu

Skatiet tikko pievienotās izmaiņas, pārbaudot Git repozitorija statusu:

$ git statuss

Var novērot, ka norādītās saistību izmaiņas tiek noņemtas no inscenēšanas zonas. Tomēr tie tiek novietoti darba zonā:

11. darbība: pārbaudiet Git žurnālu

Pārbaudiet Git repozitorija atsauces žurnāla vēsturi kopā ar SHA hash:

$ git žurnāls -- tiešsaistē

12. darbība. Izmantojiet git atiestatīšanu — cieto komandu

Lai noņemtu pievienotās izmaiņas no Git lokālā darba direktorija, izpildiet ' $ git atiestatīšana – grūti ” komanda:

$ git atiestatīšana -- grūti GALVA~ 1

13. darbība: pārbaudiet atgriezto HEAD rādītāju

Lai pārbaudītu HEAD rādītāju, atgriezieties norādītajā pozīcijā, palaidiet ' git žurnāls ” komanda:

$ git žurnāls -- tiešsaistē

Zemāk redzamā izvade parāda, ka HEAD norāda uz ' Fails 1 pievienots ” apņemties:

14. darbība: pārbaudiet Git statusu

Lai skatītu pievienotās izmaiņas, pārbaudiet Git statusu:

$ git statuss

Var redzēt, ka mums nav neviena ieraksta un gaidāmas izmaiņas Fails2.txt ” failu. Tāpēc fails File2.txt ir pilnībā noņemts:

15. darbība: pārbaudiet krātuves satura sarakstu

Lai pārbaudītu repozitorija satura sarakstu, palaidiet ' ls ” komanda:

$ ls

Kā redzat, ' Fails2.txt ” fails pašreizējā direktorijā neeksistē:

Mēs esam izskaidrojuši atšķirību starp git reset – jaukto, – soft un –hard opcijām.

Secinājums

' git atiestatīšana ” komanda tiek izmantota, lai atiestatītu izmaiņas, modificētu Git repozitorija vēsturi un labotu kļūdas. ' git reset – soft ” komanda saglabā failus un atgriež izpildes izmaiņas Git stadijas apgabalā. Turpretim “ git reset – jaukts ” komandu atsaukt apņemšanās izmaiņas un noņemt failu no inscenēšanas indeksa, neizdzēšot to no darba direktorija. Lai dzēstu visas izmaiņas un noņemtu tās no Git darba apgabala, “ git atiestatīšana — grūti ” var izmantot komandu. Šajā rakstā tika parādīta atšķirība starp git reset – jaukts, –soft un –hard.