logo

Hvordan gi angre siste commit

Som programvareingeniør eller webutvikler kan vi kreve å skyve mange forpliktelser til Git-depotet vårt.

Imidlertid er det noen andre tilfeller der vi ønsker å forplikte filene som ikke vil bli presset til Git-depotet vårt. Før vi utsteder noen forpliktelse, kan det hende vi ønsker å implementere noen ekstra endringer noen ganger.

Som en effekt krever vi å angre den siste forpliktelsen gjennom vårt Git-lager. Vi vil se hvordan vi kan angre den siste forpliktelsen i dette emnet.

Angre Last Git Commit sammen med en tilbakestilling

Vi kan enkelt angre den siste git-commit ved å utføre kommandoen, dvs. 'git reset' sammen med et alternativ, dvs. '-myk' som vil beskytte alle endringene som er gjort i filene våre. Vi må beskrive forpliktelsen til å angre som er 'HEAD~1'.

Den siste commit av git vil bli slettet fra vårt Git repository.

 $ git reset --soft HEAD~1 

I denne notasjonen,

'HEAD~1': Det betyr at vi ønsker å tilbakestille denne HEAD til en enkelt commit før i loggens historie.

int til strengkonvertering i java
 $ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2) 

Hva blir effekten av kommandoen ovenfor?

Kommandoen, dvs. 'git reset' kan sees på som en kommando, dvs. motsatt av 'git add' , egentlig setter inn filer i Git-indeksen.

Hvis du beskriver muligheten for '-myk' , Git vil ikke endre filene i indeksen eller den kjørende katalogen i det hele tatt.

For eksempel har vi inkludert to filer i vår nylige forpliktelse, selv om vi ønsker å implementere noen endringer i denne filen.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 Second commit *7083e29 Initial repository commit 

Som et resultat vil vi søke 'git reset' sammen med muligheten til '-myk' å angre den siste forpliktelsen og også implementere noen tilleggsendringer.

 $ git reset --soft HEAD~1 $ git status 

Over grenmesteren

Vår filial er master/origin ahead ved commit 1 (bruk 'git push' for å publisere våre lokale commits).

konverter strengdato

Endringer som skal foretas:

 (apply 'git restore --staged …' to unstage) 

ny fil: fil1

 $ git log --oneline --graph *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Som vi kan se, er filen fortsatt i indeksen ved å angre den siste commit (endringer som skal begås) selv om commit ble slettet.

Vi har gjort den siste commit på depotet vårt.

Hard Reset Git commit

Vi kan vurdere i avsnittet ovenfor at vi enkelt kan angre den siste forpliktelsen og behold endringene gjort til en hvilken som helst fil i indeksen. Men i noen situasjoner ønsker vi ganske enkelt å fjerne endringene og forpliktelsene som er gjort til enhver fil.

Det er et mål med et alternativ, dvs. '-hard' .

formater datoen i java

For å angre den siste commit og fjerne hver endring i indeksen og katalogen, utfør en kommando, dvs. 'git reset' sammen med alternativet, dvs. '-hard' og beskriv en commit før kommando HEAD ('HEAD~1') .

 $ git reset --hard HEAD~1 

Hver commit og modifikasjon vil bli fjernet fra indeksen og katalogen etter bruk av '--hard' kommando. Så vi bør være forsiktige.

For eksempel har vi lagt inn en hvilken som helst ny fil kalt 'file1' til vårt Git-lager.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Anta nå at vi ønsker å angre den siste forpliktelsen og fjerne hver endring.

 $ git reset --hard HEAD~1 

Nå er HEAD på 90f8bb1 Second commit

La oss nå sjekke tilstanden vår for git-depot.

 $ git status 

Over grenmesteren

Vår filial er moderne med master/origin (bruk 'git push'-kommando for å publisere våre lokale forpliktelser).

hvordan finne blokkerte numre på Android

Nå er det ingenting å forplikte seg til, og arbeidstreet er rent.

Mixed Reset Git commit

Hold endringene i arbeidskatalogen vår, men IKKE i indeksen. Vi må bruke kommandoen, dvs ., 'git reset' sammen med alternativet, dvs. '-blandet' . Etter denne kommandoen må vi bare legge til 'HEAD~1' til den siste commit.

 $ git reset --mixed HEAD~1 

For eksempel har vi inkludert enhver fil med navnet 'file1' i enhver commit som vi trenger å angre.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Ganske enkelt, vi utfører kommandoen, dvs. 'git reset' sammen med alternativet, dvs. '-blandet' for å angre den siste forpliktelsen.

Som et resultat har '-blandet' kommandoen er en 'blande' blant de harde og myke tilbakestillingene, så navnet.

Over grenmesteren

Vår filial er master/origin ahead ved commit 1 (bruk 'git push' for å publisere våre lokale commits).

Usporede filer: (bruk 'git add ...' for å legge til i det som vil forplikte)

 file1 

Ingenting inkludert for committing, men de usporede filene er tilstede (bruk 'git track' for sporing).

Så vi har oppdaget en annen praksis for å tilbakestille den siste commit ved å bevare modifikasjoner gjort på filene.

numpy dot produkt

Angre siste forpliktelse sammen med tilbakestilling

Bruk kommandoen, dvs. 'git tilbake' og beskriv en forpliktelse som skal tilbakeføres, dvs. 'HODE' til historiens forpliktelse for å tilbakestille den siste Git-forpliktelsen.

 $ git revert HEAD 

Kommandoen 'git revert' er annerledes sammenlignet med kommandoen 'git reset' fordi den kan registrere enhver ny commit sammen med noen modifikasjoner definert ved å degenerere den siste commit.

Vi kan beskrive 'HEAD~1' med 'git reset'-kommandoen fordi denne tilbakestillingskommandoen vil sette et hvilket som helst nytt HEAD-sted mens den degenererte commit-en beskrevet.

Som et resultat vil vi forplikte endringene på nytt til noen filer for tilbakestilling og forplikte oss til å ikke utføres. Vi har lagt inn en ny fil for vårt Git-lager, men vi ønsker å degenerere denne forpliktelsen.

 $ git log --oneline -graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Hvis du utfører kommandoen 'git revert', vil Git åpne tekstredigeringsprogrammet vårt for å utføre endringene automatisk.

Hvordan gi angre siste commit

En ny melding vil vises sammen med en ny commit-hash når vi er ferdige med å utføre en commit-melding.

 [master 2d40a2c] Revert 'Added a new file named as file1' 1 file changed, 1 deletion(-) delete mode 100644 file1 

Hvis vi må sjekke historien til Git igjen, kan vi legge merke til en ny forpliktelse som er lagt til for å angre den siste forpliktelsen gjennom depotet vårt.

 $ git log --oneline --graph *2d40a2c (HEAD -> master) Revert 'Added a new file named file1' *1fa26e9 Added a new file named as file1 *ee8b133 Second commit *a3bdedf Initial commit