Hva er forskjellen mellom git reset og git reset -hard?

Hva er forskjellen mellom git reset og git reset -hard?

Git er kjent for å være det mest populære versjonskontrollsystemet. Konseptet med versjonskontroll blir betydelig når vi snakker om teamarbeid og samarbeid. For eksempel, hvis flere ansatte jobber med et enkelt prosjekt, er datakonsistens et stort spørsmål som må tas opp. Du kan ikke bare anta at en endring gjort av en av de ansatte automatisk vil bli varslet til alle andre ansatte som jobber med det prosjektet. Snarere bør det være en riktig mekanisme som datakonsistens kan sikres.

Nå, hvis vi snakker om versjonskontrollprogramvare eller system, er det som navnet tilsier å følge med på versjonshistorikken din. Det betyr at alle endringene som er gjort i en bestemt fil vil bli betraktet som separate versjoner av den filen. En versjonskontrollprogramvare eller system vil i hovedsak tillate deg å gå tilbake til en eldre versjon når som helst du vil i henhold til dine behov. Bortsett fra dette sikrer et versjonskontrollsystem som Git også at endringene som er forpliktet til en hvilken som helst fil har like synlighet for alle brukerne som har tilgang til den filen, slik at de ikke tilfeldigvis begynner å jobbe med en eldre versjon eller en kopi av den filen.

Akkurat som alle andre versjonskontrollsystemer, lar Git også oss utføre visse operasjoner på filene som vi laster opp på den. Når som helst, når som helst gir det deg også muligheten til å angre endringene du har gjort til en bestemt fil ved å tilbakestille den. I dag tar vi sikte på å avdekke forskjellen mellom "git reset" og "git reset -hard" -operasjoner.

Forstå forskjellen mellom "Git Reset" og "Git Reset -Hard"

Før vi forstår forskjellen mellom "git reset" og "git reset -hard" -operasjoner, må vi være klar over noen av de viktigste terminologiene som brukes i dette versjonens kontrollsystem. Et "hode" i Git er definert som en peker, hvis jobb er å peke på den siste forpliktelsen eller endringen du har gjort til en fil. En "indeks" er definert som et sett med alle filene som nylig er forpliktet og antas å være begått neste. Til slutt refererer en "fungerende katalog" til settet med filer fra hele filsystemet du jobber for øyeblikket.

Etter å ha lært om disse terminologiene, vil det nå være veldig enkelt for deg å forstå forskjellen mellom "git reset" og "git reset -hard" -operasjoner. Som vi allerede har sagt, er det flere alternativer som du kan utføre på en fil som er lastet opp på Git, på samme måte er "git reset" definert som standardoperasjonen du kan angre den siste forpliktelsen eller endringen du har gjort i gjeldene fil. Nå kommer denne operasjonen med fem forskjellige alternativer, nemlig: hardt, myk, sammenslått, blandet og hold.

Avhengig av alternativet du har valgt eller brukt med din “git reset” -kommando, kommer du til å få et annet "angre" -nivå. "Git Reset -hard" -operasjonen regnes som den mest effektive operasjonen hvis du ønsker å bli kvitt den siste forpliktelsen din. Det betyr at når du utfører denne operasjonen, vil sjefen for filen din endre, i.e., Det vil ikke lenger peke på din siste forpliktelse. Ikke bare dette, men det vil også fjerne din siste forpliktelse fra indeksen din og til og med endre din nåværende arbeidskatalog.

På den annen side, hvis du bruker noe annet alternativ med "git reset" -kommandoen som "myk", vil det bare endre posisjonen til hodet. Annet enn det vil det ikke føre til endringer i indeksen din, og det vil heller ikke endre din nåværende arbeidskatalog. Så kort sagt kan vi si at "git reset" er en kommando, mens "git reset -hard" er dens variasjon som brukes når du vil utslette alle sporene etter din siste forpliktelse.

Konklusjon

Ved å gå gjennom denne detaljerte forklaringen på "git reset" og "git reset -hard" -operasjoner, vil du lett kunne differensiere dem fra nå av. Denne artikkelen vil også veilede deg om hvilket alternativ du trenger å bruke med “git reset” -kommandoen, avhengig av dine spesielle krav.