Hvad er forskellen mellem git-nulstilling -blandet, -blødt og -hårdt?

Hvad Er Forskellen Mellem Git Nulstilling Blandet Blodt Og Hardt



På Git er hver commit knyttet til den forrige commit, og HEAD peger på den seneste commit i arbejdsgrenen. Forpligtelseshistorikken gemmes som et træ af forpligtelser. Men nogle gange skal udviklere ændre commit-historikken. Til dette formål er ' $ git nulstillet kommandoen bruges til at ændre historien for Git-lageret og rette fejl, der blev lavet.

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 log

I 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 --online

Nedenfor 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 status

Det 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 --online

Her 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 status

Det 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 --online

Nedenstå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 status

Det 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:

$ ls

Som 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.