Hvordan angre siste forpliktelse i git

Hvordan angre siste forpliktelse i git
En vanlig arbeidsflyt i GIT er at du gjør endringer i prosjektet ditt, legger til endringene i iscenesettelsesområdet, begår endringene, gjør nye endringer, scene endringene, begår endringene, og det fortsetter og fortsetter. Men hva hvis du feilaktig begikk endringene dine? Vel, ikke frykt. Du kan alltid angre din siste forpliktelse i git. I denne artikkelen skal jeg vise deg hvordan du kan angre den siste forpliktelsen i Git. Så la oss komme i gang.

Sette opp et test Git -depot:

I denne delen skal jeg klone en av GitHub -depotene mine på datamaskinen min for å sette opp et testlager for denne artikkelen. Hvis du vil følge med, kan du gjøre det også. Hvis du har ditt eget git -depot å jobbe med, så flott! Du kan bruke den også.

Å klone en av mitt gitHub -depot (https: // github.com/dev-shovon/my-project), kjør følgende kommando:

$ git klon https: // github.com/dev-shovon/my-project undo_commit_demo

GitHub -depotet skal klones inn i UNDO_COMMIT_DEMO/ katalog.

Naviger nå til UNDO_COMMIT_DEMO/ Katalog som følger:

Forpliktelsen du vil angre kan være i en annen gren som min. Jeg vil angre den siste forpliktelsen til IE-FIX gren. Så jeg må trekke grenen IE-FIX fra mitt GitHub -depot.

Du kan trekke IE-FIX Gren fra Github som følger:

$ git Pull Origin Ie-Fix

MERK: Her, IE-FIX er grenenavnet.

De IE-FIX Grenen skal trekkes.

Nå, kasse til grenen (i mitt tilfelle, IE-FIX) som du vil angre siste forpliktelse som følger:

$ git-kassen IE-FIX

Som du kan se, den siste forpliktelsen til IE-FIX grenen er AEC00F3. I de neste seksjonene skal jeg vise deg måter å angre den siste forpliktelsen på Git -depotet ditt.

Angre siste forpliktelse og hold endringer:

En måte å angre den siste forpliktelsen på er bruken av myke tilbakestillingen på Git -depotet ditt. Hva dette gjør er, den siste forpliktelsen blir fjernet, og endringene du har gjort i den forpliktelsen blir lagt til iscenesettelsesområdet til Git -depotet ditt. På denne måten, hvis du vil fikse noe, kan du endre filene og legge til en ny forpliktelse.

Som du ser, den siste forpliktelsen i min IE-FIX grenen er AEC00F3.

$ git log --oneline

Dessuten er iscenesettelsesområdet mitt rent.

$ git status

Nå, for å fjerne eller angre den siste forpliktelsen, kjør følgende kommando:

$ git reset -myk hode ~ 1

Som du kan se, forpliktelsen AEC00F3 er borte.

$ git log --oneline

Filen jeg endret i den siste forpliktelsen er også i iscenesettelsesområdet mitt.

$ git status

Nå kan du endre filene ytterligere, fikse feilene du har gjort og begå endringene igjen.

Angre siste forpliktelse og fjern endringer:

Hvis den siste forpliktelsen du vil fjerne er ubrukelig for deg, kan du vurdere en hard tilbakestilling på Git -depotet ditt. Hva hardt tilbakestilling gjør er at den fjerner den siste forpliktelsen som før. Men det fjerner også alle endringene du har gjort i den siste forpliktelsen. Gjør en hard tilbakestill bare når du er sikker på at du ikke lenger trenger noe av den siste forpliktelsen.

Jeg skal trekke IE-FIX gren fra GitHub -depotet mitt igjen for å gjenopprette den siste forpliktelsen AEC00F3 og fjern den igjen i denne delen.

$ git Pull Origin Ie-Fix

Som du kan se, er den siste forpliktelsen tilbake. Hvis Git -depotet ditt blir lastet opp til en Git Cloud -tjeneste som GitHub, kan du også gjenopprette enhver forpliktelse du fjerner feilaktig.

Som du kan se, er iscenesettelsesområdet mitt rent.

$ git status

Nå, for å fjerne den siste forpliktelsen og fjerne endringene i den forpliktelsen, kjør følgende kommando:

$ git reset - -hard head ~ 1

Den siste forpliktelsen bør fjernes og HODE Pekeren skal oppdateres.

Som du kan se, forpliktelsen AEC00F3 fjernes og forpliktelsen rett før det (3fffdee) er den nåværende den siste forpliktelsen.

$ git log --oneline

Iscenesettelsesområdet er også rent. Så endrer filer fra den fjerne forpliktelsen.

$ git status

Oppdatering av ekstern Git -depot:

Nå som du har fjernet den defekte forpliktelsen fra Git -depotet ditt, kan det være lurt å oppdatere GitHub -depotet ditt også. Dette er temaet for denne delen.

Som du kan se, git status viser også at jeg er en forpliktelse bak fra det eksterne depotet.

Før jeg oppdaterte GitHub -depotet mitt, forpliktelsen AEC00F3 eksisterer selv om jeg fjernet det fra det lokale Git -depotet som du kan se.

For å synkronisere det lokale Git -depotet med GitHub -depotet, kjør følgende kommando:

$ git push --force origin Ie-fix

Endringene i det lokale Git -depotet skal synkroniseres med GitHub -depotet.

GitHub -depotet skal oppdateres. Som du kan se, forpliktelsen AEC00F3 er ikke lenger oppført. Forpliktelsen rett før AEC00F3, som er 3fffdee er nå den siste forpliktelsen.

Så det er slik du angre sist forplikte deg i git. Takk for at du leste denne artikkelen.