Git

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, utfører endringene, gjør nye endringer, arrangerer endringene, utfører endringene, og det fortsetter og fortsetter. Men hva om du feilaktig begikk endringene dine? 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 Repository:

I denne delen skal jeg klone et av GitHub-arkivet 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-arkiv å jobbe med, så flott! Du kan også bruke den.

Å klone et av GitHub-depotene mine (https: // github.com / dev-shovon / my-project), kjør følgende kommando:

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

GitHub-depotet bør klones inn angre_forplikt_demo / katalog.

Nå, naviger til angre_forplikt_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 GitHub-depotet mitt.

Du kan trekke i ie-fix gren fra GitHub som følger:

$ git pull origin ie-fix

MERK: Her, ie-fix er grennavnet.

De ie-fix grenen skal trekkes.

Nå, kasse til filialen (i mitt tilfelle, ie-fix) som du vil angre siste forpliktelse fra som følger:

$ git checkout ie-fix

Som du kan se, den siste forpliktelsen til ie-fix gren er aec00f3. I de neste avsnittene skal jeg vise deg måter å angre den siste forpliktelsen på Git-depotet ditt.

Angre siste forpliktelse og beholde endringer:

En måte å angre den siste forpliktelsen på er å bruke soft reset på Git-depotet ditt. Hva dette gjør er, den siste forpliktelsen fjernes, og endringene du har gjort i forpliktelsen blir lagt til stagingområdet i Git-depotet. På denne måten, hvis du vil fikse noe, kan du endre filene og legge til en ny kommisjon.

Som du kan se, den siste forpliktelsen i min ie-fix gren er aec00f3.

$ git log --online

Også iscenesettingsområdet mitt er rent.

$ git-status

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

$ git reset - soft HEAD ~ 1

Som du kan se, forplikte aec00f3 er borte.

$ git log --online

Også filen jeg endret i den siste forpliktelsen, er i mitt iscenesettelsesområde.

$ git-status

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

Angre siste forpliktelse og fjerne endringer:

Hvis den siste forpliktelsen du vil fjerne, er ubrukelig for deg, kan du vurdere en hard tilbakestilling av Git-depotet ditt. Hva hard reset gjør er, det fjerner den siste forpliktelsen som før. Men det fjerner også alle endringene du har gjort i siste forpliktelse. Gjør en hard reset 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-skytjeneste som GitHub, kan du også gjenopprette eventuelle forpliktelser du fjerner.

Som du ser er iscenesettingsområdet mitt rent.

$ git-status

For å fjerne den siste forpliktelsen og fjerne endringene i 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, forplikte aec00f3 blir fjernet og forpliktelsen rett før det (3fffdee) er gjeldende siste forpliktelse.

$ git log --online

Staging-området er også rent. Så det finnes endringsfiler fra den fjernede forpliktelsen.

$ git-status

Oppdaterer Remote Git Repository:

Nå som du har fjernet den defekte forpliktelsen fra Git-arkivet ditt, vil du kanskje også oppdatere GitHub-depotet ditt. Dette er temaet i denne delen.

Som du kan se, git status viser også at jeg er 1 forpliktet bak fra det eksterne arkivet.

Før jeg oppdaterte GitHub-depotet mitt, forpliktet aec00f3 eksisterer selv om jeg fjernet den fra det lokale Git-arkivet 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 bør oppdateres. Som du kan se, forplikte aec00f3 er ikke lenger oppført. Forpliktelsen umiddelbart før aec00f3, som er 3fffdee er nå den siste forpliktelsen.

Så det er slik du angrer siste forpliktelse i Git. Takk for at du leser denne artikkelen.

Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...
Hvordan øke FPS i Linux?
FPS står for Bilder per sekund. FPSs oppgave er å måle bildefrekvensen i videoavspilling eller spillprestasjoner. Med enkle ord betegnes antall uavbru...
Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...