17. Sitoumuksen poistaminen haarasta
Tavoitteet
- Oppia poistamaan haaran uusimmat sitoumukset
Revert
on edellisen osan tehokas komento, jonka avulla voit peruuttaa kaikki tietovarastoon tehdyt komennot. Sekä alkuperäiset että peruutetut komennot näkyvät kuitenkin historiassa haarasta (kun käytetään git log
-komentoa).
Usein sen jälkeen, kun sitoutuminen on jo tehty, ymmärrämme, että se oli virhe. Olisi mukavaa saada Kumoa-komento, jonka avulla virheelliset suoritukset voidaan poistaa välittömästi. Tämä komento estää yhden tai useamman ei-toivotun tekemisen git log
-historiassa.
01 Palautuskomento
Olemme jo käyttäneet komentoa reset
sovittamaan puskurivyöhykkeen ja valitun sitoutumisen (edellisessä oppitunnissa käytettiin HEAD-sitoutumista).
Kun annetaan sitoutumisviite (ts. haara, hash tai tagin nimi), reset
-komento …
- Korvaa nykyisen haaran niin, että se osoittaa oikeaan sitoutumiseen
- Palauta valinnaisesti puskurivyöhyke, jotta se noudattaa määritettyä sitoutumista
- Palauta valinnaisesti työkansio hakemistoon, jotta se vastaa määritettyä sitoutumista
02 Tarkista historiastamme
Tarkastellaan nopeasti sitoutumishistoriaamme .
Suorita:
git hist
Tulos:
Näemme, että tämän haaran kaksi viimeistä tekemistä ovat ”Hups ”ja” Palauta Hups ”. Poistetaan ne komennolla reset
.
03 Merkitse tämä haara ensin
Merkitään viimeinen sitoutuminen merkillä tag, so you can find it after removing a commit(s).
Suorita:
git tag oops
04 Palauta sitoutuminen aiempiin oheisiin
Sisään Yllä olevassa historialokissa sitoutunut tunnisteella ”v1” on ennen kuin ”Hups” ja ”Palauta ohit” sitoutuvat. Palautetaan haara siihen pisteeseen. Koska haaralla on tunniste, voimme käyttää tagin nimeä palautuskomennossa (jos sillä ei ole tunnistetta, voimme käyttää hash-arvoa).
Suorita:
git reset --hard v1git hist
Tulos:
Päähaaraemme osoittaa sitoutumista v1: een ja ”Palauta ohit” ja ”Oho” -sitoumuksia ei enää ole haarassa. Parametri --hard
saa työhakemiston heijastamaan uutta haarapäätä.
05 Mikään ei ole koskaan kadonnut
Mitä tapahtui väärille teoille? He ovat edelleen arkistossa. Itse asiassa voimme silti viitata niihin. Oppitunnin alussa loimme ”oho” -tunnisteen peruutetulle sitoutumiselle. Katsotaanpa kaikki tehtävät.
Suorita:
git hist --all
Tulos:
Voimme nähdä sen väärät sitoumukset eivät ole kadonneet. Niitä ei enää ole luettelossa päähaarassa, mutta ne ovat silti arkistossa. He olisivat edelleen arkistossa, jos emme merkitsisi niitä, mutta voimme sitten viitata niihin vain hash-nimillä. Rajoittamattomat sitoumukset pysyvät arkistossa, kunnes järjestelmä suorittaa roskien keräysohjelmiston.
06 Palauta vaarat
Paikallisten konttoreiden nollaus on yleensä vaaraton. Minkä tahansa ”onnettomuuden” seuraukset voidaan palauttaa käyttämällä asianmukaista sitoutumista.
Muut haaraa jakavat käyttäjät voivat kuitenkin olla hämmentyneitä, jos haara jaetaan etätietovarastoissa.