Hogyan lehet visszavonni az utolsó Git-commit

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.

Joshua James
Kategória Git

Szólj hozzá!