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

bookTietyn Commitin Palauttaminen

git revert

Tietyn commitin palauttamiseen käytetään komentoa 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 commit-merkintään), 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. Nyt voit tarkastella viimeisintä commitia:

Viimeisin commit

Tässä on sen hash-arvo:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Huomio

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

Commitin hash-arvo lasketaan SHA-1 -algoritmilla seuraavien tietojen perusteella:

  • Commit-viesti;
  • Päivämäärä;
  • Tekijä;
  • Työpuun tilanne;
  • Edeltävän commitin hash-arvo (tai commitien, jos edeltäjiä on useampi).

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

Koska kaikki nämä commitin tiedot käytetään 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 jotain, myös sen hash muuttuu. Tämä tarkoittaa, että jos data jostain syystä vioittuu, Git voi käyttää hashia tunnistaakseen tämän.

Note
Huomio

Kun commitia muokataan jälkikäteen, commit-tunniste muuttuu, minkä vuoksi git commit --amend -komentoa ei suositella käytettäväksi etärepositoryjen kanssa.

Esimerkkityönkulku

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

Neljä viimeisintä committia

On olemassa commit, jossa recipe.txt-tiedosto lisättiin. Palauta 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 palauta tämä commit:

Korvaa tämä hash omallasi.

Git revert

Oletuseditori avautuu jälleen, ja siinä näkyy oletuspalautusviesti. Jätä viesti muuttamatta.

Oletus palautusviesti

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

Viimeisin commit

7 poistamista tapahtui, eli kaikki tiedoston seitsemän riviä poistettiin. Varmista nyt, että tiedosto itse poistettiin, listaamalla kaikki ei-piilotetut tiedostot ja kansiot projektihakemistossa:

Tiedostojen ja hakemistojen luettelo

recipe.txt-tiedosto on poistettu onnistuneesti.

question-icon

Yhdistä toiminnot vastaaviin 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:

Click or drag`n`drop items and fill in the blanks

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

Awesome!

Completion rate improved to 3.57

bookTietyn Commitin Palauttaminen

Pyyhkäise näyttääksesi valikon

git revert

Tietyn commitin palauttamiseen käytetään komentoa 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 commit-merkintään), 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. Nyt voit tarkastella viimeisintä commitia:

Viimeisin commit

Tässä on sen hash-arvo:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Huomio

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

Commitin hash-arvo lasketaan SHA-1 -algoritmilla seuraavien tietojen perusteella:

  • Commit-viesti;
  • Päivämäärä;
  • Tekijä;
  • Työpuun tilanne;
  • Edeltävän commitin hash-arvo (tai commitien, jos edeltäjiä on useampi).

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

Koska kaikki nämä commitin tiedot käytetään 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 jotain, myös sen hash muuttuu. Tämä tarkoittaa, että jos data jostain syystä vioittuu, Git voi käyttää hashia tunnistaakseen tämän.

Note
Huomio

Kun commitia muokataan jälkikäteen, commit-tunniste muuttuu, minkä vuoksi git commit --amend -komentoa ei suositella käytettäväksi etärepositoryjen kanssa.

Esimerkkityönkulku

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

Neljä viimeisintä committia

On olemassa commit, jossa recipe.txt-tiedosto lisättiin. Palauta 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 palauta tämä commit:

Korvaa tämä hash omallasi.

Git revert

Oletuseditori avautuu jälleen, ja siinä näkyy oletuspalautusviesti. Jätä viesti muuttamatta.

Oletus palautusviesti

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

Viimeisin commit

7 poistamista tapahtui, eli kaikki tiedoston seitsemän riviä poistettiin. Varmista nyt, että tiedosto itse poistettiin, listaamalla kaikki ei-piilotetut tiedostot ja kansiot projektihakemistossa:

Tiedostojen ja hakemistojen luettelo

recipe.txt-tiedosto on poistettu onnistuneesti.

question-icon

Yhdistä toiminnot vastaaviin 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:

Click or drag`n`drop items and fill in the blanks

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5
some-alt