(toiminnot)

hwechtla-tl: Gitin tietomalli

Kierre.png

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


(nettipäiväkirja 03.12.2014) Yritän selvitellä tulevaa Git-koulutusta varten, mistä kaikista tiedoista git pitää kirjaa. Tämä on itse asiassa yllättävän vaikeaa, sillä kun asiaa yrittää googlata, tulee selityksiä vain Gitin säilössä olevista tiedoista (git objects), kun oikeasti git pitää kirjaa myös ainakin:

  1. työhakemistosta (working directory)
  2. vientivarastosta (staged snapshot)
  3. välivarastoista (stashes)
  4. viittauksista (refs)
  5. muutamista metaviittauksista (esim. HEAD)
  6. vertaissäilöistä (remotes)
  7. vertaissäilöjen haaroista (remote branches)
  8. viittausvastaavuuksista (refspecs) säilöjen välillä
  9. haarojen oletus-mergekohteista (tracked branches)
  10. viittaushistorioista (reflogs)
  11. tallennetuista ratkaisuista (recorded resolutions)
  12. tylsistä tiedostoista (excludes)
  13. tapahtumaskripteistä (hooks)
  14. ja varmaan vielä jostain muustakin, mitä minä en tiedä.

Pitäisi varmaan vain katsoa jonkin työhakemiston .git läpi, mutta aika monet asiat siellä ovat huomattavan kryptisiä.

Tämä oli aika hyödyllinen: https://www.atlassian.com/git/tutorials/refs-and-the-reflog/ (mutta sekään ei toki maininne kaikkia git:n seuraamia tietoja).

Yksi asia, mikä oudoksuttaa (oikeastaan myös Darcsissa), on se, että monet historiaa muokkaavat operaatiot (kuten darcs amend-record, git amend, git reset) ovat kiellettyjä "julkisille" haaroille / muutoksille eli haaroille / muutoksille, joiden tiedot on kopioitu toisiin säilöihin. Olisi melko helppoa seurata, mitkä tiedot ovat julkisia ja mitkä eivät, mutta kumpikaan versionhallintajärjestelmä ei sitä tee, vaan sen sijaan ohjeet ovat täynnä varoituksia siitä, millaisia ongelmia tulee jos esim. gitissä muokkaa rebasella muutosta, jonka joku on jo vetänyt itselleen.


kommentoi (viimeksi muutettu 22.12.2014 08:54)