logo

Hogyan lehet git visszavonni az utolsó commit

Szoftvermérnökként vagy webfejlesztőként előfordulhat, hogy sok kötelezettségvállalást kell végrehajtanunk a Git-tárhelyünkön.

Vannak azonban olyan esetek is, amikor azokat a fájlokat szeretnénk véglegesíteni, amelyek nem kerülnek a Git-tárunkba. Bármilyen kötelezettségvállalás kiadása előtt néha további változtatásokat kívánunk végrehajtani.

Ennek eredményeként vissza kell vonnunk az utolsó véglegesítést a Git tárolón keresztül. Meglátjuk, hogyan vonhatjuk vissza az utolsó commit ebben a témában.

A Last Git Commit visszavonása a visszaállítással együtt

Az utolsó git commit könnyen visszavonható a parancs végrehajtásával, azaz 'git reset' opcióval együtt, pl. '-puha' amely megvédi a fájljainkon végzett összes módosítást. Le kell írnunk a 'HEAD~1' visszavonási kötelezettséget.

A git utolsó véglegesítése törlésre kerül a Git tárhelyünkből.

 $ git reset --soft HEAD~1 

Ebben a jelölésben

'HEAD~1': Ez azt jelenti, hogy ezt a HEAD-et egyetlen véglegesítésre szeretnénk visszaállítani a napló történetében.

java részstring függvény
 $ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2) 

Mi lesz a fenti parancs hatása?

A parancs, azaz 'git reset' parancsnak tekinthető, azaz ellentéte a 'git add' , lényegében fájlok beszúrása a Git indexbe.

Ha leírja a lehetőséget '-puha' , A Git egyáltalán nem módosítja az indexben vagy a végrehajtó könyvtárban lévő fájlokat.

Például két fájlt is felvettünk a legutóbbi véglegesítésünkbe, bár szeretnénk néhány változtatást végrehajtani ebben a fájlban.

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

Ennek eredményeként jelentkezni fogunk 'git reset' opcióval együtt '-puha' az utolsó véglegesítés visszavonásához és néhány további módosítás végrehajtásához.

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

Az ágmester fölött

A mi águnk a master/origin előrébb van az 1. committal (alkalmazd a 'git push'-t a helyi commitok közzétételéhez).

osi modellrétegek

Elvégezendő módosítások:

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

új fájl: file1

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

Amint látjuk, a fájl továbbra is az indexben van az utolsó véglegesítés visszavonásával (a véglegesítendő módosítások), bár a véglegesítés törölve lett.

Sikeresen végrehajtottuk az utolsó véglegesítést a tárhelyünkön.

Hard Reset Git commit

A fenti részben úgy gondolhatjuk, hogy könnyen visszavonja az utolsó véglegesítést és megőrzi a módosításokat az indexen belüli bármely fájlra. Bizonyos helyzetekben azonban egyszerűen el akarjuk távolítani a változtatásokat és a véglegesítéseket bármely fájlon.

Ez egy opció célja, pl. '-kemény' .

hálózati réteg a számítógépes hálózatokban

Az utolsó véglegesítés visszavonásához és az indexen és a könyvtáron belüli összes módosítás eltávolításához hajtson végre egy parancsot, azaz 'git reset' opcióval együtt, pl. '-kemény' és írjon le egy véglegesítést a HEAD parancs előtt ('HEAD~1') .

 $ git reset --hard HEAD~1 

Minden véglegesítés és módosítás eltávolításra kerül az indexből és a könyvtárból a használat után '--kemény' parancs. Tehát óvatosnak kell lennünk.

Például a „file1” nevű új fájlt a Git-tárunkba helyeztük.

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

Most tegyük fel, hogy vissza akarjuk vonni az utolsó véglegesítést, és eltávolítunk minden változtatást.

 $ git reset --hard HEAD~1 

Most a HEAD a 90f8bb1 második véglegesítésen van

Most nézzük meg a git adattárunk állapotát.

 $ git status 

Az ágmester fölött

A mi águnk kortárs a master/originnel (alkalmazza a 'git push' parancsot a helyi commitok közzétételéhez).

mi az 1 millióból 10

Most nincs mit elkötelezni, és a működő fa tiszta.

Vegyes visszaállítás Git commit

A módosításokat tartsa a munkakönyvtárunkban, de NEM az indexen belül. Alkalmaznunk kell a parancsot, i.e ., 'git reset' opcióval együtt, pl. '-vegyes' . A parancs után a 'HEAD~1'-t egyszerűen hozzá kell fűznünk az utolsó véglegesítéshez.

 $ git reset --mixed HEAD~1 

Például minden 'file1' nevű fájlt felvettünk minden olyan véglegesítésbe, amelyet vissza kell vonni.

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

Egyszerűen végrehajtjuk a parancsot, azaz 'git reset' opcióval együtt, pl. '-vegyes' az utolsó elkövetés visszavonásáért.

Ennek eredményeként a '-vegyes' parancs a 'keverd össze' a hard és soft reset között, így a neve.

Az ágmester fölött

A mi águnk a master/origin előrébb van az 1. committal (alkalmazd a 'git push'-t a helyi commitok közzétételéhez).

Követetlen fájlok: (alkalmazza a „git add…” parancsot, hogy hozzáadja a véglegesítendő tartalmat)

 file1 

A véglegesítéshez semmi nem tartozik, de a követetlen fájlok jelen vannak (alkalmazza a „git track”-et a követéshez).

Tehát egy másik gyakorlatot észleltünk az utolsó véglegesítés visszaállítására a fájlok módosításainak megőrzésével.

Java mintaprogramok

Az utolsó véglegesítés visszavonása a visszaállítással együtt

Alkalmazza a parancsot, azaz 'git revert' és írjon le egy visszavonandó kötelezettségvállalást, azaz 'FEJ' a történelem commitjának az utolsó Git-commit visszaállításáért.

 $ git revert HEAD 

A 'git revert' parancs eltér a 'git reset' parancstól, mivel bármilyen új véglegesítést rögzíthet az utolsó véglegesítés degenerálásával meghatározott módosításokkal együtt.

A 'HEAD~1'-et a 'git reset' paranccsal írhatjuk le, mivel ez a reset parancs minden új HEAD-helyet beállít, miközben degenerálja a leírt véglegesítést.

Ennek eredményeként bizonyos fájlokon ismét végrehajtjuk a módosításokat a visszaállítás céljából, és elhatározzuk, hogy nem hajtják végre. Bármilyen új fájlt véglegesítettünk a Git tárhelyünkhöz, de szeretnénk degenerálni ezt a véglegesítést.

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

Ha végrehajtja a „git revert” parancsot, a Git megnyitja a szövegszerkesztőnket a módosítások automatikus végrehajtásához.

Hogyan lehet git visszavonni az utolsó commit

Egy új üzenet jelenik meg az új véglegesítési hash mellett, amikor befejeztük a véglegesítési üzenet végrehajtását.

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

Ha újra meg kell vizsgálnunk a Git előzményeit, észrevehetünk egy új véglegesítést, amely visszavonja a legutóbbi véglegesítést a tárhelyünkön keresztül.

 $ 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