Tietyn Commitin Palauttaminen
git revert
Kuten olemme jo maininneet, tietyn commitin palauttamiseen käytetään komentoa git revert
. Tämä komento luo uuden commitin, joka kumoaa määritetyn commitin tekemät muutokset. Perussyntaksi on seuraava:
git revert <commit-hash>
Kuten huomaat, viimeisimmän commitin palauttamiseen käytetyn HEAD-viittauksen sijaan tulee nyt määrittää palautettavan commitin hash (commit ID) (korvaa <commit-hash>
kelvollisella hash-arvolla).
Lisää hasheista
Muista, että jokaisella commitilla on oma yksilöllinen tunnisteensa, joka on käytännössä merkkijono numeroita (0-9) ja kirjaimia (a-f), eli heksadesimaalinen merkkijono. Tämä 40-merkkinen merkkijono on nimeltään hash. Katsotaanpa viimeisintä commitiamme:
Tässä on sen hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
Sinulla on eri hash tälle commitille alla selitetystä syystä.
Commitin hash lasketaan SHA-1 -algoritmilla seuraavien tietojen perusteella:
- Commit-viesti;
- Päivämäärä;
- Tekijä;
- Työpuun tilanne;
- Edeltävän commitin hash (tai commitit, jos vanhempia on useampi).
Jos commit on ensimmäinen repositoriossa, edeltävän commitin hashia ei luonnollisesti lasketa.
Koska kaikki nämä commitin tiedot käytetään sen hashin laskemiseen, hashien käyttäminen commit-tunnisteina varmistaa repositorion eheyden. Lisäksi kahden eri commitin saman hashin todennäköisyys (törmäys) on äärimmäisen pieni, joten se on hyvin epätodennäköistä.
Käytännössä, jos commitissa jokin muuttuu, myös sen hash muuttuu. Tämä tarkoittaa, että jos data vioittuu mistä tahansa syystä, Git voi käyttää hashia tunnistaakseen tämän.
Kun muokkaat olemassa olevaa committia, commitin tunniste (ID) muuttuu, minkä vuoksi git commit --amend
-komentoa ei suositella käytettäväksi etärepositoryjen kanssa työskenneltäessä.
Esimerkkityönkulku
Ennen kuin päätämme, minkä commitin haluamme palauttaa, tarkastellaan neljää viimeisintä committia:
Voimme nähdä, että yksi commit lisäsi recipe.txt
-tiedoston. Palautetaan tämä commit luomalla uusi commit, joka kumoaa nämä muutokset ja käytännössä poistaa tiedoston. Tässä esimerkissä sen hash on seuraava:
043b634d76a7a7744757350512b6367417c29e0
Sinun commitin hash on kuitenkin eri. Nyt voimme palauttaa tämän commitin:
Korvaa tämä hash omallasi.
Jälleen kerran oletustekstieditori avautuu oletuspalautusviestillä. Jätämme sen ennalleen.
Seuraavaksi suljetaan tekstieditori asianmukaisesti ja näytetään viimeisimmän commitin muutokset:
7 poistamista tapahtui, mikä tarkoittaa, että kaikki tiedoston 7 riviä poistettiin. Varmistetaan nyt, että tiedosto itse poistettiin listaamalla kaikki ei-piilotetut tiedostot ja hakemistot projektihakemistossamme:
Olemme onnistuneesti poistaneet recipe.txt
-tiedoston.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.57
Tietyn Commitin Palauttaminen
Pyyhkäise näyttääksesi valikon
git revert
Kuten olemme jo maininneet, tietyn commitin palauttamiseen käytetään komentoa git revert
. Tämä komento luo uuden commitin, joka kumoaa määritetyn commitin tekemät muutokset. Perussyntaksi on seuraava:
git revert <commit-hash>
Kuten huomaat, viimeisimmän commitin palauttamiseen käytetyn HEAD-viittauksen sijaan tulee nyt määrittää palautettavan commitin hash (commit ID) (korvaa <commit-hash>
kelvollisella hash-arvolla).
Lisää hasheista
Muista, että jokaisella commitilla on oma yksilöllinen tunnisteensa, joka on käytännössä merkkijono numeroita (0-9) ja kirjaimia (a-f), eli heksadesimaalinen merkkijono. Tämä 40-merkkinen merkkijono on nimeltään hash. Katsotaanpa viimeisintä commitiamme:
Tässä on sen hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
Sinulla on eri hash tälle commitille alla selitetystä syystä.
Commitin hash lasketaan SHA-1 -algoritmilla seuraavien tietojen perusteella:
- Commit-viesti;
- Päivämäärä;
- Tekijä;
- Työpuun tilanne;
- Edeltävän commitin hash (tai commitit, jos vanhempia on useampi).
Jos commit on ensimmäinen repositoriossa, edeltävän commitin hashia ei luonnollisesti lasketa.
Koska kaikki nämä commitin tiedot käytetään sen hashin laskemiseen, hashien käyttäminen commit-tunnisteina varmistaa repositorion eheyden. Lisäksi kahden eri commitin saman hashin todennäköisyys (törmäys) on äärimmäisen pieni, joten se on hyvin epätodennäköistä.
Käytännössä, jos commitissa jokin muuttuu, myös sen hash muuttuu. Tämä tarkoittaa, että jos data vioittuu mistä tahansa syystä, Git voi käyttää hashia tunnistaakseen tämän.
Kun muokkaat olemassa olevaa committia, commitin tunniste (ID) muuttuu, minkä vuoksi git commit --amend
-komentoa ei suositella käytettäväksi etärepositoryjen kanssa työskenneltäessä.
Esimerkkityönkulku
Ennen kuin päätämme, minkä commitin haluamme palauttaa, tarkastellaan neljää viimeisintä committia:
Voimme nähdä, että yksi commit lisäsi recipe.txt
-tiedoston. Palautetaan tämä commit luomalla uusi commit, joka kumoaa nämä muutokset ja käytännössä poistaa tiedoston. Tässä esimerkissä sen hash on seuraava:
043b634d76a7a7744757350512b6367417c29e0
Sinun commitin hash on kuitenkin eri. Nyt voimme palauttaa tämän commitin:
Korvaa tämä hash omallasi.
Jälleen kerran oletustekstieditori avautuu oletuspalautusviestillä. Jätämme sen ennalleen.
Seuraavaksi suljetaan tekstieditori asianmukaisesti ja näytetään viimeisimmän commitin muutokset:
7 poistamista tapahtui, mikä tarkoittaa, että kaikki tiedoston 7 riviä poistettiin. Varmistetaan nyt, että tiedosto itse poistettiin listaamalla kaikki ei-piilotetut tiedostot ja hakemistot projektihakemistossamme:
Olemme onnistuneesti poistaneet recipe.txt
-tiedoston.
Kiitos palautteestasi!