Hogyan lehet visszavonni az utolsó Git elkötelezettséget

Ha Ön webfejlesztő vagy szoftvermérnök, akkor nagyon valószínű, hogy nagyon sok elkötelezettséget hajt végre a Git oldalán repository mindennapos.

Bizonyos esetekben azonban elkövett néhány fájlt, amelyeket nem szabad a Git adattárba tolni.

Előfordulhat, hogy további változtatásokat szeretne végrehajtani az elkötelezettség kiadása előtt. .

Ennek következtében vissza kell vonni az utolsó elkötelezettséget a Git-lerakatból.

Ebben az oktatóanyagban megnézzük, hogyan lehet könnyen visszavonni az utolsó elkötelezettséget. a változtatások későbbi végrehajtásához.

Tartalom-jegyzék

Utolsó művelet visszavonása visszaállítással

Az utolsó Git-elkötelezettség visszavonásának legegyszerűbb módja a “git reset” parancs végrehajtása a “–soft” opcióval, amely megőrzi a fájlokban végrehajtott módosításokat. Meg kell adnia a visszavonás elkötelezettségét, amely ebben az esetben a “HEAD ~ 1”.

Az utolsó elkötelezettség eltávolításra kerül a Git előzményekből.

Ha nem ismeri ezt a jelölést, akkor a “HEAD ~ 1” azt jelenti, hogy vissza akarja állítani a HEAD (utolsó elkötelezettséget) a naplóelőzmények előtt egy elkötelezettségre.

Tehát mi a hatása ennek a parancsnak?

A “git reset” parancs a “git add” parancs ellentétének tekinthető, lényegében fájlokat adva hozzá a Git indexbe.

A “–soft” opció megadásakor a Git utasítást kap, hogy egyáltalán ne módosítsa a munkakönyvtárban vagy az indexben található fájlokat.

Példaként , tegyük fel, hogy két fájlt adott hozzá a legutóbbi elkötelezettségéhez, de néhány módosítást szeretne végrehajtani ezen a fájlon.

Ennek következtében a “git reset” parancsot a “–soft” opcióval fogja használni. az utolsó elkötelezettség visszavonása és további módosítások végrehajtása érdekében.

Mint látható, az utolsó elkötelezettség visszavonásával a a fájl még mindig az indexben van (a változtatásokat el kell végezni), de az elkötelezettséget eltávolítottuk.

Félelmetes, sikeresen visszavonta az adattár utolsó Git-elkötelezettségét.

Hard Reset Git elkötelezettség

Az előző szakaszban azt láttuk, hogy az index fájljaiban végrehajtott módosítások megőrzésével hogyan lehet egyszerűen visszavonni az utolsó elkötelezettséget.

Bizonyos esetekben egyszerűen megszabadulni az elkötelezettségtől és a fájlokban végrehajtott módosításoktól.

Ez a “–hard” opció célja.

Az utolsó elkötelezettség visszavonása és az összes módosítás elvetése érdekében a munkakönyvtárban és az indexben hajtsa végre a “git reset” parancsot a “–hard” opcióval, és a HEAD (“HEAD ~ 1”) előtt adja meg a végrehajtást.

Legyen óvatos a „–hard” használatakor: A módosítások eltávolításra kerülnek a munkakönyvtárból, és az indexből elveszítenek minden módosítást.

Vissza a korábban részletezett példához, mondjuk hogy egy új fájlt rendelt a Git adattárához “fájl1” néven.

Most tegyünk úgy, mintha visszavonnád az utolsó elkötelezettséget, és elvetenéd az összes módosítást.

Nagyszerű, most nézzük meg a Git-tárunk állapotát .

Mint láthatja, a fájlt teljesen eltávolították a Git adattárból (index + munkakönyvtár)

Vegyes reset Git Végrehajtás

Az utolsó Git-elkötelezettség visszavonásához tartsa meg a változásokat a munkakönyvtárban, de NEM az indexben, a “git reset” parancsot kell használnia a “–mixed” opcióval. A parancs mellett egyszerűen csatolja a “HEAD ~ 1” -t az utolsó elkötelezettséghez.

Például tegyük fel, hogy hozzáadtunk egy “nevű fájlt” file1 ”egy elkötelezettségben, amelyet vissza kell vonnunk.

Az utolsó elkötelezettség visszavonásához egyszerűen végre kell hajtani a„ git reset ”parancsot a„ –mixed ”opcióval.

A” –mixed “opció megadásakor a fájl eltávolításra kerül a Git indexből, de a munkakönyvtárból nem.

Ennek következtében a” –mixed ”A keverés a soft és a hard reset között, innen ered a neve.

Remek! Talált egy másik módot az utolsó elkötelezettség visszavonására, miközben megőrzi a fájlokban végrehajtott módosításokat.

A következő szakaszban egy másik módot fogunk találni az utolsó elkötelezettség visszavonására a git revert paranccsal.

Visszavonja az utolsó elkötelezettséget a visszaállítással

Az utolsó Git-elkötelezettség visszaállításához , használja a “git revert” elemet, és adja meg a visszaállítandó elkötelezettséget, amely a “HEAD” az előzmények utolsó elkötelezettségéhez.

A “git revert” parancs kissé eltér a “git reset” parancstól, mert új kötelezettségvállalást rögzít az utolsó kötelezettség visszavonásával bevezetett változtatásokkal.

Ne feledje, hogy a “git esetén is reset ”megadta a„ HEAD ~ 1 ”értéket, mert a reset parancs új HEAD pozíciót állít be, míg a visszaállítás valójában visszaállítja a megadott elkötelezettséget.

Ennek következtében újra el kell végeznie a módosításokat, hogy a fájlok visszavonása és az elkötelezettség visszavonása.

Ennek eredményeként tegyük fel, hogy új fájlt rendelt a Git adattárához, de vissza kívánja állítani ezt az elkötelezettséget.

A “git revert” parancs végrehajtásakor a Git automatikusan megnyitja a szövegszerkesztőt a változtatások végrehajtása érdekében.

Ha végzett az elkötelezettséggel, akkor egy üzenet jelenik meg az új elkötelezettség kivonattal.

Ha most újra megvizsgálná Git-előzményeit, akkor észrevenné, hogy új kötelezettségvállalás lett hozzáadva annak érdekében, hogy visszavonja a legutóbbi elkötelezettséget a tárából.

Következtetés

Ebben az oktatóanyagban megismerhette a Git-adattár utolsó végrehajtásának visszavonásának minden módját.

Megtudta a “git reset” -et ”Parancsot és a végrehajtásának különféle módjait attól függően, hogy mit akarsz megtartani vagy sem.

Ismerkedtél a git reset és a git revert parancs közötti különbséggel is, utóbbi új sorrendet adott hozzá hogy visszavonja az adattárból.

Ha kíváncsi vagy a Gitre vagy a szoftveres motorra eering, van egy teljes szakaszunk, amely a weboldalon van ennek szentelve, ezért mindenképpen nézd meg!

Ha tetszik a Git, akkor kedvelheted a többi cikkünket is:

  • Hogyan klónozhatunk egy Git-adattárat
  • Hogyan állíthatjuk le a Git-fájlok színpadát
  • Hogyan válasszuk ki a Git-vállalásokat?
git

Write a Comment

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük