Kartais dirbdami su „Git“ galite atšaukti paskutinį įsipareigojimą. Įsipareigojimas yra „Git“ saugyklos momentinė nuotrauka tam tikru metu. „Git“ turi vadinamąjį kintamąjį kintamąjį GALVA
tai rodo paskutinį įsipareigojimą dabartiniame darbo skyriuje. Norėdami anuliuoti įsipareigojimą, jums tereikia nurodyti GALVA
ankstesnio momentinio vaizdo kintamasis.
Šiame vadove paaiškinama, kaip anuliuoti paskutinį „Git“ įsipareigojimą.
Nerekomenduojama anuliuoti įsipareigojimo, kuris jau yra perkeltas į bendrą saugyklą. Jei norite pakeisti tik įsipareigojimo pranešimą, peržiūrėkite šį straipsnį .
Git trijų medžių architektūra #
Programoje „Git“ galite anuliuoti pakeitimus naudodami git atstatyti
komanda, po kurios nurodomas įsipareigojimo identifikatorius.
git atstatyti
imasi papildomų argumentų, leidžiančių valdyti komandos elgesį. Kad geriau suprastum, kaip atstatyti
kūrinius pakalbėkime apie tris skirtingus „Git“ medžius. Trijų medžių architektūra yra pagrindinė „Git“ valdymo sistemos samprata. Jie vadinami medžiais, nes jie reiškia bylų kolekcijas.
Gitas valdo ir valdo šiuos tris medžius:
- Darbinis katalogas - katalogas, įskaitant visus pakatalogius ir failus vietiniame failų sistemoje, kuris taip pat yra suderinamas su saugykla. Jis dažnai vadinamas „darbiniu medžiu“. Darbinis katalogas yra kažkas panašaus į smėlio dėžę, kurioje galite išbandyti pakeitimus prieš įtraukdami juos į pakopos indeksą.
- Rodyklė - šis medis seka naujus ar pakeistus failus, kurie buvo pridėti prie indekso naudojant
git pridėti
, būti įtrauktam į kitą įsipareigojimą. Tai dažnai vadinama „sustojimo zona“ arba „sustojimo indeksas“. - The
GALVA
- Jūsų paskutinio įsipareigojimo dabartiniame filiale rodyklė.
The git atstatyti
komanda turi tris argumentus, kurie atitinka tris medžius:
--minkštas
- AtnaujinaGALVA
rodyklė į duotą įsipareigojimą. Darbinis katalogas ir rodyklė nekeičiami.--sumaišytas
- AtnaujinaGALVA
žymeklį ir iš naujo nustato indeksą į nurodytą įsipareigojimą. Darbinis katalogas nepaliestas. Tai yra numatytasis „Windows“ veikimo režimasatstatyti
komandą.--sunku
- AtnaujinaGALVA
žymeklį ir iš naujo nustato indeksą ir darbo katalogą prie nurodyto įsipareigojimo. Būkite ypač atsargūs naudodami šią parinktį, nes visi neatlikti vietiniai pakeitimai bus perrašyti ir prarasti.
Anuliuojamas paskutinis įsipareigojimas #
Norėdami anuliuoti paskutinį įsipareigojimą neprarasdami pakeitimų, kuriuos atlikote vietiniuose failuose ir rodyklėje, paspauskite git atstatyti
su --minkštas
parinktis, po kurios eina GALVA ~ 1
:
„git reset“ - minkšta GALVA ~ 1
GALVA ~ 1
yra kintamasis, nurodantis ankstesnį įsipareigojimą. Aukščiau pateikta komanda perkelia dabartinę atšaką atgal vienu įsipareigojimu, veiksmingai anuliuodama jūsų paskutinį įsipareigojimą. Jei paleisite git statusas
komandą, pamatysite, kad pakeisti failai yra išvardyti kaip neįvykdyti pakeitimai.
Norėdami atnaujinti GALVA
rodyklę, kad iš naujo nustatytumėte rodyklę, paleiskite git atstatyti
su --sumaišytas
arba be pasirinkimo:
„git reset“ - sumaišyta GALVA ~ 1
git reset HEAD ~ 1
Pakeisti failai išlaikomi, tačiau, skirtingai nei ankstesniame pavyzdyje, dabar pakeitimai nėra rengiami įvykdyti.
Jei nenorite išsaugoti failų pakeitimų, iškvieskite git atstatyti
komanda su --sunku
variantas:
„git“ atstatymas - kieta GALVA ~ 1
Prieš atlikdami kietąjį atstatymą, įsitikinkite, kad jums nebereikia pakeitimų.
Kelių įsipareigojimų anuliavimas #
Su git atstatyti
, galite grįžti prie bet kurio ankstesnio įsipareigojimo.
Pvz., Norėdami perkelti dabartinį filialą atgal į tris įsipareigojimus, naudokite:
„git“ atstatymas - kieta GALVA ~ 3
Kadangi mes naudojame --sunku
, aukščiau pateikta komanda pašalins naujausias tris momentines nuotraukas iš įsipareigojimų istorijos.
Kitas būdas grįžti prie konkretaus įsipareigojimo yra perduoti įsipareigojimo ID git atstatyti
komandą.
Naudokite git žurnalas - linija
rasti įsipareigojimų ID:
git žurnalas - linija
Komandoje bus rodomas visų įvykdytų veiksmų sąrašas, įskaitant ID ir pirmąją įvykdymo pranešimo eilutę:
32921222 (HEAD -> master) Atnaujinti keitimo žurnalą 7505724c pridedant naujus testus 750862ce naujas tinklaraščio įrašas 95a63417 rūšiuoti konfigūracijos failą 252032e4 Refactor Vartotojo klasė
Kai žinosite įsipareigojimo, kurį norite iš naujo nustatyti, ID, tiesiog perduokite ID git atstatyti
komanda:
„git“ atstatymas - sunku 95a63417
Išvada Nr
Norėdami anuliuoti paskutinį įsipareigojimą, naudokite git atstatyti
komandą. Neatstatykite išstumtų įsipareigojimų, nes tai gali sukelti daug problemų jūsų kolegoms.
Jei susidūrėte su problema arba turite atsiliepimų, palikite komentarą žemiau.