Az utolsó Git-commit visszavonása gyakori feladat a fejlesztőknek, akiknek vissza kell vonniuk a változtatásokat vagy ki kell javítaniuk a hibákat. A Git számos módszert kínál a legutóbbi véglegesítés visszavonására, lehetővé téve a tiszta és pontos projekttörténet fenntartását. Ezek a módszerek magukban foglalják a véglegesítések visszaállítását, visszaállítását vagy módosítását, amelyek mindegyike más-más célt szolgál, attól függően, hogy meg akarja-e őrizni vagy el kell vetni a változtatásokat.
Ez az útmutató gyakorlati példák segítségével bemutatja, hogyan lehet visszavonni az utolsó Git-commit. Ezen technikák elsajátításával hatékonyan kezelheti Git-előzményeit, és biztosíthatja, hogy projektje jól szervezett és hibamentes maradjon.
A Git Commit megértése
Mielőtt megvizsgálnánk, hogyan lehet visszavonni egy Git-kötelezettséget, kulcsfontosságú, hogy megértsük, mit jelent a commit a Gitben. A kötelezettségvállalás egy pillanatképet jelent a munkádról egy adott pillanatban. A legutóbbi véglegesítés óta végrehajtott összes módosítást tartalmazza. Minden véglegesítést egyedileg azonosít egy SHA-1 hash, amely lehetővé teszi a Git számára, hogy megőrizze a változások előzményeit.
Git Commit visszafordítása
Két elsődleges technika van a Git-commit visszafordítására: a git reset és a git revert. Részletesen megvitatjuk az egyes módszereket, beleértve azok felhasználási eseteit és következményeit.
git reset --soft HEAD~1
A git reset használata
A git reset parancs egy hatékony eszköz, amely lehetővé teszi az aktuális HEAD áthelyezését vagy „visszaállítását” egy meghatározott állapotba. Íme, hogyan használhatod a legutóbbi véglegesítés visszavonásához:
git reset --soft HEAD~1
Ebben a parancsban a –soft biztosítja, hogy a változtatások megmaradjanak az átmeneti területen, a HEAD~1 pedig az aktuális előtti véglegesítésre utal. A visszavont véglegesítésből származó változások a munkakönyvtárban és az átmeneti területen maradnak.
Íme egy példa kimenet:
Unstaged changes after reset:
M file1.txt
M file2.txt
Ez azt jelzi, hogy a fájl1.txt és a fájl2.txt fájlban végrehajtott módosítások most nem léptek fel.
Ha teljesen el szeretné vetni a véglegesítést és az összes kapcsolódó módosítást, akkor használja a –hard opciót:
git reset --hard HEAD~1
Legyen óvatos ezzel a paranccsal, mivel véglegesen elveti a legutóbbi véglegesítés során történt összes változást.
A git revert használata
A git revert parancs új véglegesítést hoz létre, amely visszavonja az előző véglegesítésben végrehajtott módosításokat. Ez egy biztonságos módja a változtatások visszavonásának, mivel nem módosítja a meglévő véglegesítési előzményeket. A következőképpen használhatja:
git revert HEAD
Ez a parancs egy új véglegesítést hoz létre, amely visszavonja a legutóbbi véglegesítés során végrehajtott változtatásokat.
Íme egy példa kimenet:
[master 0a9b2aa] Revert "Add new feature"
1 file changed, 1 insertion(+), 2 deletions(-)
Ez azt jelzi, hogy egy új véglegesítés jött létre, amely visszaállítja az előző véglegesítés módosításait.
Git-commit visszavonása: kibővített példák
A git reset használata: További példák
Visszaállítás egy adott véglegesítésre
Ha nem csak az utolsó véglegesítést szeretné visszavonni, hanem több véglegesítést, akkor ezt a véglegesítési hash megadásával teheti meg HEAD~1
. Például:
git reset --soft 9fceb02
Ez a parancs áthelyezi a HEAD-et a 9fceb02 hash által meghatározott véglegesítésre, és a 9fceb02 utáni összes véglegesítés változásai az átmeneti területen maradnak.
Nem szakaszos változtatások visszaállítása
Ha változtatásokat hajtott végre, de még nem hajtotta végre azokat, és szeretné visszavonni ezeket a változtatásokat, használhatja a git reset-et véglegesítési hivatkozás nélkül:
git reset --hard
Ez a parancs visszavon minden nem szakaszos módosítást, és visszaállítja a munkakönyvtárat az utolsó véglegesítés állapotába.
A git revert használata: További példák
Változások tartományának visszaállítása
Ha a véglegesítések egy tartományát szeretné visszavonni, a git revert paranccsal megadhatja a tartományt. Például:
git revert HEAD~3..HEAD
Ez a parancs új véglegesítéseket hoz létre, amelyek visszavonják az utolsó három véglegesítés során végrehajtott változtatásokat.
Egy adott véglegesítés visszaállítása
Ha egy adott véglegesítést szeretne visszavonni, amely nem a legutóbbi, akkor ezt a véglegesítési hash megadásával teheti meg:
git revert 9fceb02
Ez a parancs egy új véglegesítést hoz létre, amely visszavonja a hash által megadott véglegesítésben végrehajtott változtatásokat 9fceb02
.
Következtetés
A Git egy hatékony eszköz, és összetettsége ijesztő lehet a kezdők számára. Ha azonban tisztában van azzal, hogyan lehet visszavonni a kötelezettségvállalást, magabiztosan navigálhat a Gitben. Az, hogy a git reset vagy a git revert használatát választja, az egyedi igényeitől és az egyes parancsok következményeitől függ. Ne feledje, a Git elsajátításának kulcsa a gyakorlás és a felfedezés.