Denne artikel vil kort forklare forskellen mellem git reset -hard, -soft og -mixed.
Hvad er forskellen mellem git-nulstilling -blandet, -blødt og -hårdt?
Git giver flere nulstillingsmuligheder. På baggrund af hvordan de håndterer commits, er alle de tilgængelige muligheder forskellige fra hinanden. De ændrer alle Git-historien og flytter HOVEDET tilbage. Desuden håndterer de ændringerne forskelligt, såsom:
- Det ' -blød ' mulighed brugt sammen med ' $ git nulstillet ” kommando for at beholde filerne og returnere commit-ændringerne til Git-inddelingsindekset.
- “ $ git reset –blandet ” bruges til at fortryde commit-ændringerne og fjerne filen fra iscenesættelsesindekset uden at slette den fra arbejdsmappen.
- Det ' -svært ' mulighed med ' $ git nulstillet ” kommandoen bruges til at slette alle ændringer og fjerne dem fra den lokale arbejdsmappe.
Lad os tage et eksempel for at se, hvordan ' $ git nulstillet ” kommandoen fungerer med forskellige muligheder!
Trin 1: Gå til Desired Git Repository
Flyt først til dit ønskede Git-lager ved at bruge ' cd kommando:
$ cd 'C:\Go \t er_repo'
Trin 2: Opret fil
Udfør nu nedenstående kommando for at oprette en fil:
$ røre ved Fil4.txt
Trin 3: Føj fil til Staging Index
Brug ' git tilføje ” kommando for at tilføje den nyligt genererede fil til iscenesættelsesindekset:
$ git tilføje Fil4.txt
Trin 4: Bekræft ændringer
Tilføj derefter alle ændringer til arbejdslageret ved at udføre ' git commit kommando:
$ git commit -m 'File4 tilføjet'
Trin 5: Tjek Git Log
Tjek derefter Git-loghistorikken for at se de seneste commits, der blev tilføjet:
$ git logI outputtet nedenfor kan det ses, at alle de seneste tilføjede commits vises, og ' HOVED ” peger på den nylige forpligtelse:
Bemærk: For at tjekke HOVEDETs aktuelle pegeposition på en bedre måde skal du udføre ' git log kommandoen sammen med ' -oneline ' flag:
$ git log --onlineNedenfor det givne output viser listen over commit SHA-hash med commit-beskeder:
Trin 6: Brug git reset –soft Command
For at vende de tilføjede ændringer fra Git-lageret til iscenesættelsesindekset skal du bruge ' git nulstilles kommandoen sammen med '– blød ” valgmulighed, og angiv den ønskede HOVED-position, hvor det er nødvendigt at flytte markøren:
$ git nulstilles --blød HOVED~ 1
Trin 7: Tjek Git-status
Bekræft nu den tilbagevendende position for HEAD, kontroller Git-lagerets status:
$ git statusDet kan ses, at ' git nulstilling –blød ” kommandoen har returneret commit ændringerne til Git staging indekset. Desuden er ' Fil4.txt ”-filen er nu i Git-staging-indekset og skal begås:
Trin 8: Tjek Git Log
For at se den aktuelle position for HEAD skal du køre den givne kommando sammen med ' -oneline ' mulighed:
$ git log --onlineHer peger HOVEDET på ' Fil 3 ' begå:
Trin 9: Brug git reset — blandet kommando
For at fortryde forpligtede ændringer og fjerne filerne fra iscenesættelsesområdet uden at slette dem fra arbejdsmappen, skal du udføre ' $ git reset –blandet ” kommando sammen med den påkrævede HEAD-position for commit:
$ git nulstilles --blandet HOVED~ 1
Trin 10: Tjek Git-status
Se de nyligt tilføjede ændringer ved at kontrollere Git-lagerets status:
$ git statusDet kan observeres, at de angivne commit-ændringer fjernes fra iscenesættelsesområdet. De er dog placeret i arbejdsområdet:
Trin 11: Tjek Git Log
Tjek Git-lagerets referenceloghistorik sammen med SHA-hashen:
$ git log --online
Trin 12: Brug git reset — hård kommando
For at fjerne tilføjede ændringer fra den lokale Git-arbejdsmappe skal du udføre ' $ git nulstilling – hårdt kommando:
$ git nulstilles --svært HOVED~ 1
Trin 13: Bekræft Reverted HEAD Pointer
For at bekræfte HOVED-markøren skal du vende tilbage til den specificerede position, køre ' git log kommando:
$ git log --onlineNedenstående output viser, at HOVEDET peger på ' Fil1 tilføjet ' begå:
Trin 14: Tjek Git-status
For at se de tilføjede ændringer, tjek Git-status:
$ git statusDet kan ses, at vi ikke har nogen spor og afventende ændringer af ' Fil2.txt ' fil. Derfor er File2.txt blevet fjernet fuldstændigt:
Trin 15: Bekræft listen over lagerindhold
For at bekræfte lagerlisten over indhold skal du køre ' ls kommando:
$ lsSom du kan se, ' Fil2.txt ” fil findes ikke i den aktuelle mappe:
Vi har forklaret forskellen mellem git-nulstilling -blandet, -blødt og -hårdt muligheder.
Konklusion
Det ' git nulstilles ” kommandoen bruges til at nulstille ændringerne, ændre historikken for Git-lageret og rette fejl. Det ' git nulstilling – blød ” kommandoen beholder filerne og returnerer commit-ændringerne til Git-indstillingsområdet. I modsætning hertil er ' git reset –blandet ” kommandoen fortryd commit-ændringerne og fjern filen fra iscenesættelsesindekset uden at slette den fra arbejdsmappen. For at slette alle ændringerne og fjerne dem fra Git-arbejdsområdet, skal ' git nulstilling – hårdt ” kommando kan bruges. Denne artikel illustrerede forskellen mellem git reset -mixed, -soft og -hard.