logo

Sådan fortryder du sidste commit

Som softwareingeniør eller webudvikler kan vi kræve, at vi skubber mange commits til vores Git-lager.

Der er dog nogle andre tilfælde, hvor vi ønsker at begå de filer, der ikke vil blive skubbet til vores Git-lager. Inden vi udsteder nogen tilsagn, kan vi nogle gange ønske at implementere nogle yderligere ændringer.

Som en effekt kræver vi at fortryde den sidste commit gennem vores Git-lager. Vi vil se, hvordan vi kan fortryde den sidste commit i dette emne.

Fortryd Last Git Commit sammen med en nulstilling

Vi kan nemt fortryde den sidste git-commit ved at udføre kommandoen, dvs. 'git nulstil' sammen med en mulighed, dvs. '-blød' som vil beskytte alle de ændringer, der er foretaget i vores filer. Vi skal beskrive forpligtelsen til at fortryde, der er 'HEAD~1'.

Den sidste commit af git vil blive slettet fra vores Git repository.

 $ git reset --soft HEAD~1 

I denne notation,

'HEAD~1': Det betyder, at vi ønsker at nulstille dette HEAD til en enkelt commit før inde i loggens historie.

linux som
 $ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2) 

Hvad vil effekten af ​​ovenstående kommando være?

Kommandoen, dvs. 'git nulstil' kan ses som en kommando, dvs. modsat af 'git tilføje' , i det væsentlige ved at indsætte filer i Git-indekset.

Hvis man beskriver muligheden for '-blød' , Git vil slet ikke ændre filerne i indekset eller den eksekverende mappe.

For eksempel har vi inkluderet to filer i vores seneste commit, selvom vi ønsker at implementere nogle ændringer i denne fil.

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

Som følge heraf vil vi ansøge 'git nulstil' sammen med mulighed for '-blød' at fortryde den sidste commit og også implementere nogle yderligere ændringer.

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

Over filialmesteren

Vores afdeling er master/origin ahead ved commit 1 (anvend 'git push' for at offentliggøre vores lokale commits).

konverter strengdato

Ændringer, der skal forpligtes:

 (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 stadig i indekset ved at fortryde den sidste commit (ændringer, der skal begås), selvom commit blev slettet.

Vi har gennemført den sidste commit på vores lager med succes.

Hard Reset Git commit

Vi kan overveje i ovenstående afsnit, at vi nemt kan fortryd den sidste commit og bevar ændringerne gjort til enhver fil inde i indekset. Men i nogle situationer ønsker vi blot at fjerne ændringerne og tilsagn til enhver fil.

Det er et mål for en option, dvs. '-hårdt' .

10 1 mio

For at fortryde den sidste commit og fjerne enhver ændring i indekset og mappen skal du udføre en kommando, dvs. 'git nulstil' sammen med muligheden, dvs. '-hårdt' og beskriv en commit før kommando HEAD ('HEAD~1') .

 $ git reset --hard HEAD~1 

Hver commit og ændring vil blive fjernet fra indekset og mappen efter brug af '--hårdt' kommando. Så vi bør være forsigtige.

For eksempel har vi forpligtet enhver ny fil med navnet 'file1' til vores Git-lager.

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

Antag nu, at vi ønsker at fortryde den sidste commit og fjerne hver ændring.

 $ git reset --hard HEAD~1 

Nu er HEAD på 90f8bb1 Second commit

Lad os nu tjekke vores git-lagertilstand.

 $ git status 

Over filialmesteren

Vores filial er moderne med master/oprindelse (anvend 'git push'-kommando for at udgive vores lokale commits).

konvertering af streng til int

Nu er der ikke noget at forpligte sig til, og arbejdstræet er rent.

Mixed Reset Git commit

Hold ændringer i vores arbejdsmappe, dog IKKE i indekset. Vi skal anvende kommandoen, dvs ., 'git nulstil' sammen med muligheden, dvs. '-blandet' . Efter denne kommando skal vi tilføje 'HEAD~1' til den sidste commit.

 $ git reset --mixed HEAD~1 

For eksempel har vi inkluderet enhver fil med navnet 'file1' i enhver commit, som vi skal fortryde.

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

Simpelthen udfører vi kommandoen, dvs. 'git nulstil' sammen med muligheden, dvs. '-blandet' for at fortryde den sidste commit.

Som følge heraf '-blandet' kommando er en 'blande' blandt den hårde og bløde nulstilling, så dens navn.

Over filialmesteren

Vores afdeling er master/origin ahead ved commit 1 (anvend 'git push' for at offentliggøre vores lokale commits).

Ikke-sporede filer: (anvend 'git add …' for at tilføje i det, der vil begå)

 file1 

Intet inkluderet til commit, men de usporede filer er til stede (anvend 'git track' til sporing).

Så vi har opdaget en anden praksis for at gendanne den sidste commit ved at bevare ændringer, der er foretaget i filerne.

primitive datatyper i java

Fortryd Last Commit sammen med fortryd

Anvend kommandoen, dvs. 'git tilbage' og beskriv en forpligtelse, der skal tilbageføres, dvs. 'HOVED' til historiens commit for at vende tilbage til den sidste Git commit.

 $ git revert HEAD 

Kommandoen 'git revert' er anderledes sammenlignet med kommandoen 'git reset', fordi den kan optage enhver ny commit sammen med nogle modifikationer defineret ved at degenerere den sidste commit.

Vi kan beskrive 'HEAD~1' med 'git reset'-kommandoen, fordi denne reset-kommando vil sætte ethvert nyt HEAD-sted, mens den beskrevne commit degenereres.

Som et resultat vil vi forpligte ændringerne igen til nogle filer for at vende tilbage og forpligte os til at blive uudført. Vi har commiteret enhver ny fil til vores repository af Git, men vi ønsker at degenerere denne commit.

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

Hvis kommandoen 'git revert' udføres, vil Git åbne vores teksteditor for at foretage ændringerne automatisk.

Sådan fortryder du sidste commit

En ny besked vises sammen med en ny commit-hash, når vi er færdige med at udføre en commit-besked.

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

Hvis vi er nødt til at tjekke vores historie af Git igen, kan vi bemærke en ny commit tilføjet for at fortryde den sidste commit gennem vores repository.

 $ 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