6 Korjausmetodi 2: git reset

Image credit: Pexels
Kun käyttäjä yrittää tehdä muutoksia, mutta etähakemistossa oleva päähaara on edennyt samanaikaisesti, Git-haarojen divergoituminen voi estää työn sujuvan etenemisen. Yksi tapa ratkaista tällaisia tilanteita on käyttää reset-menetelmää. Tässä luvussa esittelemme tästä esimerkin.
6.1 Alkutilanne
Alkutilanne on vastaava kuin edellä osiossa 5.1.
Käyttäjät 1 ja 2 ovat tällä kertaa muokanneet tiedostoa
test2.R.Käyttäjä 1 on jo suorittanut commit- ja push -toiminnot, joten etähakemistossa päähaara on jo edennyt commit-tilaan
C1. (Ks. Kuva alla.)



Kuva. Tiedoston test2.R versiot etähakemistossa (vasemmalla) ja Käyttäjän 2 tietokoneella (oikealla) eroavat toisistaan.
- Kun käyttäjä 2 nyt yrittää suorittaa pull-komennon, Git estää tämän, koska paikallinen haara on commit-pisteen C0 edellä.
Tilanne esitetään seuraavassa kaaviossa:

6.2 Reset-käsky
Käyttäjä 2 voi ratkaista tilanteen seuraavilla askelilla:
Ensin ongelmallinen tiedosto varmuuskopioidaan
Käyttäjä 2 kopioi tiedoston
test.Rtyöpöydälleen tai muuhun varmuuskopiointikansioon. Tämä estää tiedoston häviämisen, kun Gitin tila päivitetään.
Alla video tästä. Huom! Jos työpöydälle siirrettävä tiedosto on auki RStudiossa, tämä varoittaa tiedoston siirtymisestä:
Video. Ongelmallinen tiedosto test2.R varmuuskopioidaan työpöydälle.
Resetoidaan aikapiste etähakemiston viimeisimpään päähaaran aikapisteeseen
Käyttäjä suorittaa seuraavat komennot palatakseen etähakemiston viimeisimpään tilaan (
C1):
Näillä komennoilla varmistetaan, että:
- Paikallinen hakemisto vastaa etähakemiston viimeisintä tilaa
git fetchlataa uusimmat muutokset etähakemistosta ilman, että paikalliset tiedostot muuttuvat
git reset --hard origin/mainpalauttaa paikallisen haaran ja työtilan tarkalleen etähakemiston tilaan.
Video. Reset-käsky.
test2.R-tiedoston tarkasteluAvaamalla
test2.R-tiedoston Käyttäjä 2 voi havaita, että tiedosto on palautunut Käyttäjä 1:n muokkaamaan commit-tilaanC1:
Video. test2.R-tiedoston tarkastelu.
Käyttäjä 2:n muokkaaman
test2.R-tiedoston palautusKäyttäjä 2:n muokkaama
test2.R-tiedosto voidaan nyt palauttaa työpöydältä paikalliseen Git-hakemistoon. Samalla se uudelleennimetään muotoontest2 copy.R:
Video. Tiedoston test2.R palautus työpöydältä.
Tiedostojen
test2.Rjatest2 copy.RtarkasteluKäyttäjä 2 voi nyt vielä tarkastella edellä mainittujen tiedostojen eroja RStudiossa:
Video. Tiedostojen test2.R ja test2 copy.R tarkastelu RStudiossa.
- Commit- ja push -toiminto etähakemistoon
Käyttäjä 2 voi nyt halutessaan suorittaa commit- ja push -toiminnon tiedostolle test2 copy.R:
Video. Onnistunut commit- ja push -toiminto.
- Etähakemiston tarkastelu GitHubissa
Käyttäjä 2 voi nyt varmistaa, että myös hänen muokkaamansa tiedosto test2 copy.R näkyy etähakemistossa:
Video. Myös tiedosto test2 copy.R näkyy nyt etähakemistossa.
6.3 Yhteenveto
Reset-metodi tarjoaa suoraviivaisen ja tehokkaan tavan ratkaista tilanteita, joissa paikallinen haara ja etähakemisto ovat divergoituneet. Tärkeimmät vaiheet sisältävät ongelmallisen tiedoston varmuuskopioinnin, reset-käskyn käytön etähakemiston tilaan palaamiseksi ja lopuksi tiedoston palauttamisen uudella nimellä. Näin käyttäjät voivat jatkaa työskentelyä ilman tietojen menetystä, ja commit- ja push-toiminnot onnistuvat jälleen.
Reset-metodin avulla vältetään monimutkaisempien konfliktien selvittäminen ja säilytetään sekä oma työ että tiimin päähaaran eheys.
Divergent Git branches - ongelmasta ratkaisuun © 2025 by
Ville Langén is licensed under the CC BY-SA 4.0.
