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 loggI 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å nettNedenfor 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 statusDet 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å nettHer 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 statusDet 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å nettUtgangen nedenfor viser at HODET peker mot ' Fil1 lagt til 'forplikte:
Trinn 14: Sjekk Git-status
For å se de lagte endringene, sjekk Git-statusen:
$ git statusDet 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:
$ lsSom 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.