Kot inženir programske opreme ali spletni razvijalec bomo morda morali vložiti številne zaveze v naš repozitorij Git.
Vendar pa obstaja nekaj drugih primerov, ko želimo izdati datoteke, ki ne bodo potisnjene v naš repozitorij Git. Preden izdamo kakršno koli obvezo, bomo včasih želeli uvesti nekaj dodatnih sprememb.
Posledično zahtevamo razveljavitev zadnje objave prek našega repozitorija Git. Videli bomo, kako lahko razveljavimo zadnjo objavo v tej temi.
Razveljavi zadnjo objavo Git skupaj s ponastavitvijo
Zadnjo objavo git lahko enostavno razveljavimo z izvedbo ukaza, tj. 'git reset' skupaj z možnostjo, tj. '-mehko' ki bo zaščitil vse spremembe naših datotek. Opisati moramo potrditev za razveljavitev, ki je 'HEAD~1'.
Zadnja objava gita bo izbrisana iz našega Git repozitorija.
$ git reset --soft HEAD~1
V tem zapisu je
'GLAVA~1': To pomeni, da želimo to GLAVO ponastaviti na eno samo objavo, preden v zgodovino dnevnika.
java primerjalni niz
$ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2)
Kakšen bo učinek zgornjega ukaza?
Ukaz, tj. 'git reset' lahko gledamo kot ukaz, tj. nasprotje od 'git add' , v bistvu vstavljanje datotek v indeks Git.
Če opisujete možnost '-mehko' , Git sploh ne bo spremenil datotek znotraj indeksa ali izvajalnega imenika.
Na primer, v našo nedavno objavo smo vključili dve datoteki, čeprav želimo v to datoteko izvesti nekaj sprememb.
$ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 Second commit *7083e29 Initial repository commit
Posledično se bomo prijavili 'git reset' skupaj z možnostjo '-mehko' da razveljavi zadnjo objavo in uvede nekaj dodatnih sprememb.
$ git reset --soft HEAD~1 $ git status
Čez podružnico gospodar
Naša veja je master/origin pred objavo 1 (uporabite 'git push' za objavo naših lokalnih objav).
dodajte niz java
Spremembe, ki jih je treba izvesti:
(apply 'git restore --staged …' to unstage)
nova datoteka: datoteka1
$ git log --oneline --graph *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Kot lahko vidimo, je datoteka še vedno v indeksu zaradi razveljavitve zadnje objave (spremembe, ki jih je treba potrditi), čeprav je bila objava izbrisana.
Uspešno smo izvedli zadnjo objavo v našem skladišču.
Hard Reset Git commit
V zgornjem razdelku lahko menimo, da lahko zlahka razveljavi zadnjo objavo in ohrani spremembe izvede za katero koli datoteko znotraj indeksa. Toda v nekaterih situacijah preprosto želimo odstraniti spremembe in potrditve katere koli datoteke.
Je cilj opcije, tj. '-težko' .
preveri, ali je v Javi nič
Če želite razveljaviti zadnjo potrditev in odstraniti vse spremembe v indeksu in imeniku, izvedite ukaz, tj. 'git reset' skupaj z možnostjo, tj. '-težko' in opišite objavo pred ukazom HEAD ('GLAVA~1') .
$ git reset --hard HEAD~1
Vsaka objava in sprememba bo odstranjena iz indeksa in imenika po uporabi '--težko' ukaz. Zato bi morali biti previdni.
Na primer, vsako novo datoteko z imenom 'file1' smo objavili v našem repozitoriju Git.
$ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Zdaj predpostavimo, da želimo razveljaviti zadnjo objavo in odstraniti vse spremembe.
$ git reset --hard HEAD~1
Zdaj je HEAD na drugi potrditvi 90f8bb1
Zdaj pa preverimo stanje našega repozitorija git.
$ git status
Čez podružnico gospodar
Naša veja je sodobna z master/origin (uporabi ukaz 'git push' za objavo naših lokalnih potrditev).
string.valueof
Zdaj ni ničesar za zavezati in delovno drevo je čisto.
Mešana potrditev ponastavitve Git
Hranite spremembe v našem delovnem imeniku, vendar NE v indeksu. Uporabiti moramo ukaz, tj ., 'git reset' skupaj z možnostjo, tj. '-mešano' . Po tem ukazu moramo preprosto dodati 'HEAD~1' zadnji objavi.
$ git reset --mixed HEAD~1
Na primer, katero koli datoteko z imenom 'file1' smo vključili v vsako objavo, ki jo želimo razveljaviti.
$ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Preprosto izvedemo ukaz, tj. 'git reset' skupaj z možnostjo, tj. '-mešano' za razveljavitev zadnje objave.
Kot rezultat, '-mešano' ukaz je a 'mešanica' med trdimi in mehkimi ponastavitvami, zato je ime.
Čez podružnico gospodar
Naša veja je master/origin pred objavo 1 (uporabite 'git push' za objavo naših lokalnih objav).
Datoteke, ki jim ni sledi: (uporabite 'git add ...', če želite dodati znotraj tega, kar bo potrdilo)
file1
Nič ni vključeno za potrditev, vendar so prisotne datoteke, ki jim ni sledi (za sledenje uporabite 'git track').
Tako smo odkrili še eno prakso za razveljavitev zadnje objave z ohranitvijo sprememb, opravljenih v datotekah.
Razveljavi zadnjo objavo skupaj s povrnitvijo
Uporabite ukaz, tj. 'git revert' in opišite objavo, ki bo razveljavljena, tj. 'GLAVA' na objavo zgodovine za povrnitev zadnje objave Git.
$ git revert HEAD
Ukaz 'git revert' je drugačen v primerjavi z ukazom 'git reset', ker lahko zabeleži vsako novo objavo skupaj z nekaterimi spremembami, definiranimi z degeneracijo zadnje objave.
'HEAD~1' lahko opišemo z ukazom 'git reset', ker bo ta ukaz za ponastavitev nastavil vsako novo mesto HEAD, medtem ko degenerira opisano objavo.
Posledično bomo spremembe znova izdali nekaterim datotekam za razveljavitev in zavezali, da se ne bodo izvajale. Objavili smo vsako novo datoteko za naš repozitorij Git, vendar želimo to objavo degenerirati.
metoda java podniz
$ git log --oneline -graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Če izvedete ukaz 'git revert', bo Git odprl naš urejevalnik besedil, da samodejno potrdi spremembe.
Novo sporočilo se bo prikazalo skupaj z novo zgoščeno vrednostjo potrditve, ko bomo končali z izvajanjem sporočila objave.
[master 2d40a2c] Revert 'Added a new file named as file1' 1 file changed, 1 deletion(-) delete mode 100644 file1
Če moramo ponovno preveriti našo zgodovino Gita, lahko opazimo novo potrditev, dodano za razveljavitev zadnje objave prek našega skladišča.
$ 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