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.
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