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
Gitin Perusteet

bookTietyn Commitin Palauttaminen

git revert

Palauta tietty commit käyttämällä komentoa git revert. Tämä komento luo uuden commitin, joka kumoaa määritetyn commitin tekemät muutokset. Perussyntaksi:

git revert <commit-hash>

Sen sijaan, että käyttäisit HEAD (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:

Viimeisin commit

Tässä on sen hash-arvo:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Huomio

Sinulla tulee olemaan eri hash-arvo tälle commitille alla selitetystä syystä.

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 useamman, jos commitilla on useampi kuin yksi vanhempi).

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 takaa 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 käyttää hashia tunnistaakseen tämän.

Note
Huomio

Kun commitia muokataan jälkikäteen, commit-tunniste muuttuu. Tämän vuoksi git commit --amend -komentoa ei suositella käytettäväksi etärepositorioiden kanssa työskenneltäessä.

Esimerkkityönkulku

Ennen kuin päätetään, mikä commit palautetaan, tarkastellaan neljää viimeisintä commitia:

Neljä viimeisintä commitia

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

Palauta tietty commit käyttämällä komentoa git revert. Tämä komento luo uuden commitin, joka kumoaa määritetyn commitin tekemät muutokset. Perussyntaksi:

git revert <commit-hash>

Sen sijaan, että käyttäisit HEAD (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:

Viimeisin commit

Tässä on sen hash-arvo:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Huomio

Sinulla tulee olemaan eri hash-arvo tälle commitille alla selitetystä syystä.

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 useamman, jos commitilla on useampi kuin yksi vanhempi).

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 takaa 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 käyttää hashia tunnistaakseen tämän.

Note
Huomio

Kun commitia muokataan jälkikäteen, commit-tunniste muuttuu. Tämän vuoksi git commit --amend -komentoa ei suositella käytettäväksi etärepositorioiden kanssa työskenneltäessä.

Esimerkkityönkulku

Ennen kuin päätetään, mikä commit palautetaan, tarkastellaan neljää viimeisintä commitia:

Neljä viimeisintä commitia

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