Denne artikkelen vil kort forklare forskjellen mellom Git Reset -hard, -soft og -Blandet.
Hva er forskjellen mellom tilbakestilling av git -blandet, -soft og -hard?
Git gir flere tilbakestillingsalternativer. På bakgrunn av hvordan de håndterer forpliktelsene, er alle tilgjengelige alternativene forskjellige fra hverandre. De endrer alle Git -historien og beveger hodet tilbake. Dessuten håndterer de endringene annerledes, for eksempel:
La oss ta et eksempel for å se hvordan "$ git reset”Kommando fungerer med forskjellige alternativer!
Trinn 1: Gå til ønsket Git -depot
Først må du gå til ønsket Git -depot ved å bruke "CD”Kommando:
$ CD "C: \ git \ test_repo"
Trinn 2: Opprett fil
Nå, utfør den undergitte kommandoen for å opprette en fil:
$ Touch File4.tekst
Trinn 3: Legg til fil i iscenesettingsindeksen
Bruke "git add”Kommando for å legge til den nylig genererte filen i iscenesettelsesindeksen:
$ git Legg til fil4.tekst
Trinn 4: Forplikt endringer
Deretter legger du til alle endringer i arbeidsreposten ved å utføre "git forpliktelse”Kommando:
$ git commit -m "file4 lagt til"
Trinn 5: Sjekk git -loggen
Kontroller deretter Git Log -historien for å se de siste forpliktelsene som ble lagt til:
$ git log
I utgangen nedenfor kan det sees at alle de siste tilførte 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 log”Kommando sammen med“-en linje" flagg:
$ git log --oneline
Nedenfor gitt utdata viser listen over Commit Sha Hash med forpliktelsesmeldinger:
Trinn 6: Bruk Git Reset -Soft -kommandoen
For å tilbakestille de ekstra endringene fra Git -depotet til iscenesettelsesindeksen, bruk "Git tilbakestilling”Kommando sammen med“-myk”Alternativ, og spesifiser ønsket hodeposisjon der det kreves for å flytte pekeren:
$ git reset -myk hode ~ 1
Trinn 7: Sjekk git -status
Kontroller nå den omvendende posisjonen til hodet, sjekk Git -depotstatusen:
$ git status
Det kan sees at “git reset -soft”Kommandoen har returnert forpliktelsesendringene til Git -iscenesettelsesindeksen. Dessuten "File4.tekst”Filen er nå i GIT -iscenesettingsindeksen og må forplikte seg:
Trinn 8: Sjekk git -loggen
For å se den nåværende posisjonen til hodet, kjør den gitte kommandoen sammen med “-en linje”Alternativ:
$ git log --oneline
Her peker hodet på “File3”Forplikt:
Trinn 9: Bruk tilbakestilling av git - Mixed Command
For å angre begått endringer og fjerne filene fra iscenesettelsesområdet uten å slette dem fra arbeidskatalogen, utfør "$ git reset -mixed”Kommando sammen med den nødvendige hovedposisjonen til forpliktelsen:
$ git reset -blandet hode ~ 1
Trinn 10: Sjekk git -status
Se de nylig lagt til endringene ved å sjekke Git Repository Status:
$ git status
Det kan observeres at de spesifiserte forpliktelsesendringene fjernes fra iscenesettelsesområdet. Imidlertid er de plassert i arbeidsområdet:
Trinn 11: Sjekk git -loggen
Sjekk Git Repository Reference Log History sammen med SHA Hash:
$ git log --oneline
Trinn 12: Bruk tilbakestilling av git - hard kommando
For å fjerne ekstra endringer fra Git Local Working Directory, utfør "$ git reset -hard”Kommando:
$ git reset - -hard head ~ 1
Trinn 13: Kontroller omvendt hodepeker
For å bekrefte hodepekeren, gå tilbake til den spesifiserte posisjonen, kjør "git log”Kommando:
$ git log --oneline
Under utgangen viser at hodet peker på “Fil1 lagt til”Forplikt:
Trinn 14: Sjekk git -status
For å se de ekstra endringene, sjekk GIT -statusen:
$ git status
Det kan sees at vi ikke har noe spor og i påvente av endringer av “File2.tekst”Fil. Derfor, fil2.TXT er fjernet fullstendig:
Trinn 15: Bekreft listen over depotinnhold
For å bekrefte depotlisten over innhold, kjør "ls”Kommando:
$ ls
Som du kan se, "File2.tekst”Filen eksisterer ikke i den gjeldende katalogen:
Vi har forklart forskjellen mellom GIT -tilbakestilling -blandet, -soft og -hard alternativer.
Konklusjon
“Git tilbakestilling”Kommando brukes til å tilbakestille endringene, endre historien til Git Repository og fikse feil. “git reset -soft”Kommando holder filene og returnerer forpliktelsesendringene til Git -iscenesettelsesområdet. I kontrast til "git reset -mixedKommando angre forpliktelsen endres og fjerne filen fra iscenesettelsesindeksen uten å slette den fra arbeidskatalogen. For å slette alle endringene og fjerne dem fra Git -arbeidsområdet, "git reset -hard”Kommando kan brukes. Denne artikkelen illustrerte forskjellen mellom tilbakestilling av git -tilbakestilling, -soft og -hard.