Hva er forskjellen mellom git reset -blandet, -myk og -hard?

Hva Er Forskjellen Mellom Git Reset Blandet Myk Og Hard



På Git er hver commit knyttet til forrige commit, og HEAD peker på den siste commit i arbeidsgrenen. Forpliktelseshistorikken lagres som et tre med forpliktelser. Noen ganger må imidlertid utviklere endre commit-historikken. For dette formålet ' $ git tilbakestilt kommandoen brukes til å endre historien til Git-depotet og fikse feil som ble gjort.

Denne artikkelen vil kort forklare forskjellen mellom git reset –hard, –soft og –mixed.

Hva er forskjellen mellom git reset -blandet, -myk og -hard?

Git gir flere tilbakestillingsalternativer. På grunnlag av hvordan de håndterer forpliktelsene, er alle tilgjengelige alternativer forskjellige fra hverandre. De endrer alle Git-historien og flytter HODET tilbake. Dessuten håndterer de endringene annerledes, for eksempel:







  • « -myk alternativet brukt med ' $ git tilbakestilt ” kommando for å beholde filene og returnere commit-endringene til Git-staging-indeksen.
  • ' $ git reset –mixed ” brukes til å angre commit-endringene og fjerne filen fra oppsamlingsindeksen uten å slette den fra arbeidskatalogen.
  • « -hard '-alternativet med ' $ git tilbakestilt kommandoen brukes til å slette alle endringer og fjerne dem fra den lokale arbeidskatalogen.

La oss ta et eksempel for å se hvordan ' $ git tilbakestilt kommandoen fungerer med forskjellige alternativer!



Trinn 1: Gå til Desired Git Repository

Flytt først til ønsket Git-depot ved å bruke ' cd ' kommando:



$ cd 'C:\Go \t er_repo'





Trinn 2: Opprett fil

Utfør nå kommandoen nedenfor for å lage en fil:

$ ta på File4.txt



Trinn 3: Legg til fil til Staging Index

Bruke ' git add ” kommando for å legge til den nylig genererte filen i oppsamlingsindeksen:

$ git add File4.txt

Trinn 4: Bekreft endringer

Deretter legger du til alle endringer i arbeidslageret ved å utføre ' git commit ' kommando:

$ git commit -m 'File4 lagt til'

Trinn 5: Sjekk Git-loggen

Sjekk deretter Git-loggloggen for å se de siste forpliktelsene som ble lagt til:

$ git logg

I utdataene nedenfor kan det ses at alle de siste tillagte forpliktelsene vises, og ' HODE ” peker på den nylige forpliktelsen:

Merk: For å sjekke HODETS nåværende pekeposisjon på en bedre måte, utfør ' git logg '-kommandoen sammen med ' -en linje ' flagg:

$ git logg --på nett

Nedenfor gitt utdata viser listen over commit SHA-hash med commit-meldinger:

Trinn 6: Bruk git reset –soft Command

For å tilbakestille de tilføyde endringene fra Git-depotet til iscenesettelsesindeksen, bruk ' git tilbakestilt '-kommandoen sammen med '- myk '-alternativet, og spesifiser ønsket HODE-posisjon der det er nødvendig å flytte pekeren:

$ git tilbakestilt --myk HODE~ 1

Trinn 7: Sjekk Git-status

Bekreft nå tilbakestillingsposisjonen til HEAD, kontroller Git-depotstatusen:

$ git status

Det kan sees at ' git reset –myk ”-kommandoen har returnert commit-endringene til Git-staging-indeksen. Dessuten, ' File4.txt ”-filen er nå i Git-staging-indeksen og må forpliktes:

Trinn 8: Sjekk Git-loggen

For å se gjeldende posisjon til HEAD, kjør den gitte kommandoen sammen med ' -en linje alternativ:

$ git logg --på nett

Her peker HODET på ' Fil 3 'forplikte:

Trinn 9: Bruk git reset — blandet kommando

For å angre forpliktede endringer og fjerne filene fra oppsamlingsområdet uten å slette dem fra arbeidskatalogen, kjør ' $ git reset –mixed ” kommando sammen med den nødvendige HEAD-posisjonen til commit:

$ git tilbakestilt --blandet HODE~ 1

Trinn 10: Sjekk Git-status

Se de nylig lagt til endringene ved å sjekke Git-repository-statusen:

$ git status

Det kan observeres at de angitte commit-endringene fjernes fra oppstillingsområdet. Imidlertid er de plassert i arbeidsområdet:

Trinn 11: Sjekk Git-loggen

Sjekk Git-repositoriets referanselogghistorikk sammen med SHA-hashen:

$ git logg --på nett

Trinn 12: Bruk git reset — hard Command

For å fjerne tilføyde endringer fra Git lokale arbeidskatalog, kjør ' $ git reset –hard ' kommando:

$ git tilbakestilt --hard HODE~ 1

Trinn 13: Bekreft Reverted HEAD Pointer

For å bekrefte HEAD-pekeren, gå tilbake til den angitte posisjonen, kjør ' git logg ' kommando:

$ git logg --på nett

Utgangen nedenfor viser at HODET peker mot ' Fil1 lagt til 'forplikte:

Trinn 14: Sjekk Git-status

For å se de lagte endringene, sjekk Git-statusen:

$ git status

Det kan sees at vi ikke har noen spor og ventende endringer av ' Fil2.txt ' fil. Derfor har File2.txt blitt fjernet fullstendig:

Trinn 15: Bekreft listen over depotinnhold

For å bekrefte depotlisten over innhold, kjør ' ls ' kommando:

$ ls

Som du kan se, ' Fil2.txt ' fil eksisterer ikke i gjeldende katalog:

Vi har forklart forskjellen mellom git reset –mixed, –soft og –hard alternativer.

Konklusjon

« git tilbakestilt ”-kommandoen brukes til å tilbakestille endringene, endre historien til Git-depotet og fikse feil. « git reset –myk ”-kommandoen beholder filene og returnerer commit-endringene til Git-oppsettområdet. Derimot er ' git reset –blandet ” kommandoen angre commit-endringene og fjern filen fra oppsamlingsindeksen uten å slette den fra arbeidskatalogen. For å slette alle endringene og fjerne dem fra Git-arbeidsområdet, ' git reset -hard kommandoen kan brukes. Denne artikkelen illustrerte forskjellen mellom git reset –blandet, –myk og –hard.