(toiminnot)

hwechtla-tl: Nettipäiväkirja 16.12.2014

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Tuli mieleen vielä yksi asia, joka Gitissä on outo. Haarat (branches) on toteutettu viittauksilla, joten niillä ei ole metatietoja eikä historiaa säilössä. Tämä tarkoittaa, että haarasta ei voi oikeastaan tietää, kuka sen on luonut, milloin, mihin se on osoittanut milläkin hetkellä ja niin edelleen. (Paitsi: koska viittausten historia on tärkeää, git pitää sitä tallessa reflogeissa, mutta näitä historioita ei kopioida säilöjen välillä.)

Tarvittaessa git sitten päättelee tai arvailee näitä puuttuvia tietoja. Esimerkiksi git merge-base tuottaa kaikki mahdolliset versiot, joiden kohdalla haara X on eronnut haarasta Y. Yleensä haaran viittaus on aiemmin osoittanut tämänhetkisen versionsa esiäitiversioihin. Ja niin edelleen. Mutta mikään tästä ei ole varmaa. Voin esimerkiksi huiskauttaa jotain juttuja sivuun git stashilla, sen jälkeen päättää että se onkin aito commit, jonka päälle haluan jatkaa kehitystäni, ja uudelleenkirjoittaa jonkin haaran osoittamaan sinne.

Esimerkki haarahistorian puutteesta: jos haen remoten R haaran H, laitan oman haarani H seuraamaan sitä, teen kolme commitia omaan H:honi, ja pushaan ne R:n H:hon, niin omassa säilössäni H:n reflog näyttää kaikki commitit jotka olen tehnyt siihen, ja R:ssä H:n reflog näyttää vain viimeisen niistä (koska push asetti H:n suoraan osoittamaan siihen).


kommentoi (viimeksi muutettu 17.12.2014 13:27)