Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tietyn Commitin Palauttaminen | Muutosten Peruuttaminen
Gitin Perusteet

Tietyn Commitin Palauttaminen

Pyyhkäise näyttääksesi valikon

git revert

Tietyn commitin palauttaminen komennolla git revert. Tämä komento luo uuden commitin, joka kumoaa valitun commitin tekemät muutokset. Perussyntaksi:

git revert <commit-hash>

Sen sijaan, että käyttäisit HEAD-viittausta (joka kohdistuu viimeisimpään commitiin), määritä palautettavan commitin hash (commit ID) korvaamalla <commit-hash> todellisella hash-arvolla.

Lisätietoa hasheista

Jokaisella commitilla on yksilöllinen tunniste — 40-merkkinen heksadesimaalinen merkkijono, joka koostuu numeroista (0–9) ja kirjaimista (a–f). Tätä tunnistetta kutsutaan hashiksi. Näytä nyt viimeisin commit:

git log -n 1
Viimeisin commit

Tässä on sen hash-arvo:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Huomio

Tämän commitin hash-arvo on sinulla eri, syystä joka selitetään alla.

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 commitien, jos vanhempia on useampi).

Jos commit on ensimmäinen repositoriossa, edeltävän commitin hashia ei luonnollisesti lasketa.

Hashin laskeminen

Koska kaikki nämä commitin tiedot käytetään sen hashin laskemiseen, hashien käyttäminen commit-tunnisteina varmistaa repositorion yhtenäisyyden. Lisäksi kahden eri commitin osuessa samaan hash-arvoon (törmäys) on äärimmäisen epätodennäköistä, joten se tapahtuu harvoin sattumalta.

Käytännössä, jos commitissa muutetaan mitään, myös sen hash muuttuu. Tämä tarkoittaa, että jos data jostain syystä vioittuu, Git voi tunnistaa tämän hashin avulla.

Note
Huomio

Kun committia muokataan jälkikäteen, commitin tunniste muuttuu, minkä vuoksi git commit --amend -komennon käyttöä ei suositella etärepositorioiden kanssa työskenneltäessä.

Esimerkkityönkulku

Ennen kuin päätät, minkä commitin haluat perua, tarkastele neljää viimeisintä committia:

git log -n 4
Neljä viimeisintä committia

Yksi commit lisää tiedoston recipe.txt. Peru tämä commit luodaksesi uuden commitin, joka kumoaa nämä muutokset ja poistaa tiedoston. Tässä esimerkissä commitin hash on:

043b634d76a7a7744757350512b6367417c29e0

Oma commit-hashisi on erilainen. Nyt peru tämä commit:

git revert 043b634d76a7aa7744757350512bb3b7417c29e0

Korvaa tämä hash omallasi.

Git revert

Jälleen kerran oletuseditori avautuu ja näyttää oletusviestin palautukselle. Jätä viesti muuttamatta.

Oletusarvoinen palautuskommentti

Sulje seuraavaksi tekstieditori asianmukaisesti ja näytä viimeisimmän commitin muutokset:

git show HEAD
Viimeisin commit

7 poistettua riviä, eli kaikki tiedoston seitsemän riviä poistettiin. Varmista nyt, että tiedosto on todella poistettu listaamalla kaikki ei-piilotetut tiedostot ja kansiot projektihakemistossa:

ls -l
Tiedostojen ja kansioiden listaus

Tiedosto recipe.txt on poistettu onnistuneesti.

question-icon

Yhdistä toiminnot oikeisiin komentoihin.


Revert the latest commit:

Revert a specific commit:

Unstage changes:

Revert unstaged changes:

Unstage changes and then revert the changes in the working directory:

Overwrite the existing commit:

Klikkaa tai vedä ja pudota esineitä ja täytä tyhjät kohdat

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 3. Luku 5
some-alt