logo

Kuinka git kumota viimeinen sitoumus

Ohjelmistoinsinöörinä tai verkkokehittäjänä saatamme vaatia monia sitoumuksia Git-tietovarastoon.

On kuitenkin joitain muita tapauksia, joissa haluamme sitoa tiedostot, joita ei työnnetä Git-arkistoon. Ennen sitoumusta saatamme joskus haluta tehdä joitain lisämuutoksia.

Tämän seurauksena meidän on kumottava viimeinen sitoumus Git-arkistomme kautta. Katsotaan, kuinka voimme kumota tämän aiheen viimeisen sitoumuksen.

Kumoa Last Git Commit ja nollaa

Voimme helposti kumota viimeisen git-sitoumuksen suorittamalla komennon, eli 'git reset' yhdessä vaihtoehdon kanssa, ts. '-pehmeä' joka suojaa kaikki tiedostoihimme tehdyt muutokset. Meidän on kuvattava sitoumus kumota, joka on 'HEAD~1'.

Gitin viimeinen sitoumus poistetaan Git-varastosta.

 $ git reset --soft HEAD~1 

Tässä merkinnässä

'HEAD~1': Se tarkoittaa, että haluamme nollata tämän HEADin yhdeksi toimitukseksi ennen lokin historiaa.

null tarkistus javassa
 $ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2) 

Mikä on yllä olevan komennon vaikutus?

Käsky, ts. 'git reset' voidaan nähdä komentona, eli vastakohtana 'git add' , lähinnä tiedostojen lisääminen Git-hakemistoon.

Jos kuvataan vaihtoehtoa '-pehmeä' , Git ei muuta hakemiston tai suoritushakemiston tiedostoja ollenkaan.

Olemme esimerkiksi sisällyttäneet kaksi tiedostoa äskettäiseen sitoumukseemme, vaikka haluammekin tehdä joitain muutoksia tähän tiedostoon.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 Second commit *7083e29 Initial repository commit 

Tämän seurauksena aiomme hakea 'git reset' yhdessä vaihtoehdon kanssa '-pehmeä' peruuttaaksesi viimeisimmän sitoumuksen ja tehdäksesi myös joitain lisämuutoksia.

 $ git reset --soft HEAD~1 $ git status 

Haarajohtajan yli

Haaramme on master/origin edellä sitoumuksella 1 (käytä 'git push' -toimintoa paikallisten sitoumustemme julkaisemiseen).

Tehtävät muutokset:

 (apply 'git restore --staged …' to unstage) 

uusi tiedosto: file1

 $ git log --oneline --graph *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Kuten näemme, tiedosto on edelleen hakemistossa kumoamalla viimeinen toimitus (sitovat muutokset), vaikka toimitus poistettiin.

Olemme tehneet viimeisen sitoumuksen arkistossamme onnistuneesti.

jframe

Hard Reset Git commit

Voimme ajatella yllä olevassa osiossa, että voimme helposti kumoa viimeinen sitoumus ja säilytä muutokset tehty mille tahansa hakemiston sisällä olevalle tiedostolle. Mutta joissakin tilanteissa haluamme vain poistaa mihin tahansa tiedostoon tehdyt muutokset ja sitoumukset.

Se on vaihtoehdon tavoite, ts. '-kovaa' .

Kumoa viimeinen sitoumus ja poista kaikki muutokset indeksissä ja hakemistossa suorittamalla komento, eli 'git reset' vaihtoehdon kanssa, ts. '-kovaa' ja kuvaile sitoumus ennen komentoa HEAD ('HEAD~1') .

 $ git reset --hard HEAD~1 

Kaikki sitoumukset ja muutokset poistetaan hakemistosta ja hakemistosta '--kovaa' komento. Meidän tulee siis olla varovaisia.

Olemme esimerkiksi sitoneet kaikki uudet tiedostot nimeltä 'file1' Git-arkistoon.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Oletetaan nyt, että haluamme kumota viimeisen sitoumuksen ja poistaa kaikki muutokset.

java sopimusten nimeäminen
 $ git reset --hard HEAD~1 

Nyt HEAD on 90f8bb1 toisessa sitoumuksessa

Nyt tarkistetaan git-arkiston tila.

 $ git status 

Haarajohtajan yli

Haaramme on nykyaikainen master/origin (käytä 'git push' -komentoa paikallisten sitoumustemme julkaisemiseen).

mikä on 10 miljoonasta

Nyt ei ole mitään sitoutumista, ja työpuu on puhdas.

Mixed Reset Git commit

Säilytä muutokset työhakemistossamme, EI kuitenkaan hakemistossa. Meidän on sovellettava komentoa, ts ., 'git reset' vaihtoehdon kanssa, ts. '-sekoitettu' . Tämän komennon jälkeen meidän on liitettävä 'HEAD~1' yksinkertaisesti viimeiseen vahvistukseen.

 $ git reset --mixed HEAD~1 

Olemme esimerkiksi sisällyttäneet minkä tahansa tiedoston nimeltä 'tiedosto1' kaikkiin sitoumuksiin, jotka vaadimme kumoamaan.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Yksinkertaisesti suoritamme komennon, eli 'git reset' vaihtoehdon kanssa, ts. '-sekoitettu' viimeisen sitoumuksen kumoamisesta.

Tämän seurauksena '-sekoitettu' komento on a 'sekoita' kovan ja pehmeän nollauksen joukossa, joten sen nimi.

Haarajohtajan yli

Haaramme on master/origin edellä sitoumuksella 1 (käytä 'git push' -toimintoa paikallisten sitoumustemme julkaisemiseen).

Jäljittämättömät tiedostot: (käytä 'git add…' lisätäksesi sitovan sisällön)

 file1 

Mitään ei sisälly sitoutumiseen, mutta jäljittämättömät tiedostot ovat läsnä (käytä 'git track' seurantaan).

Joten olemme havainneet toisen käytännön palauttaa viimeinen sitoumus säilyttämällä tiedostoihin tehdyt muutokset.

Kumoa viimeinen sitoumus ja palauta

Käytä komentoa, eli 'git revert' ja kuvaile peruutettavaa sitoumusta, eli 'PÄÄ' historian sitoumukselle viimeisen Git-sitoumuksen palauttamisesta.

 $ git revert HEAD 

Komento 'git revert' eroaa komennolla 'git reset', koska se voi tallentaa minkä tahansa uuden toimituksen sekä joitain muutoksia, jotka on määritetty poistamalla viimeinen toimitus.

Voimme kuvata 'HEAD~1' komennolla 'git reset', koska tämä nollauskomento asettaa minkä tahansa uuden HEAD-paikan samalla kun kuvattua toimitusta degeneroidaan.

Tämän seurauksena sitoudumme joihinkin tiedostoihin tehdyt muutokset uudelleen palautettavaksi ja sitoudumme olemaan suorittamattomia. Olemme tehneet uuden tiedoston Git-varastossamme, mutta haluamme degeneroida tämän sitoumuksen.

 $ git log --oneline -graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Jos suoritetaan komento 'git revert', Git avaa tekstieditorin ja tekee muutokset automaattisesti.

Kuinka git kumota viimeinen sitoumus

Uusi viesti tulee näkyviin uuden vahvistushajasteen kanssa, kun olemme suorittaneet toimitusviestin.

listan iterointi javassa
 [master 2d40a2c] Revert 'Added a new file named as file1' 1 file changed, 1 deletion(-) delete mode 100644 file1 

Jos meidän on tarkistettava Git-historiamme uudelleen, voimme huomata, että uusi sitoumus on lisätty viimeisimmän toimituksen kumoamiseksi arkistomme kautta.

 $ 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