Gitin alimoduulit

Tänään törmäsin ensimmäistä kertaa gitin alimoduuleihin. Kun kloonasin repositoriota GitHubista, huomasin, että yksi sen kansioista jäi tyhjäksi. Tarkemmin katsottuna löysin viittauksen toiseen repositoriopuuhun, näin:

Tässä kansio htslib on oikeastaan peräisin toisen repositorion puusta. Kun kloonasin repositorion näin (olin haarauttanut sen ensin):

git clone https://github.com/fischuu/SE-MEI.git

kansio htslib jäi tyhjäksi. Syynä on se, ettei alimoduulien tiedostoja haeta oletuksena. Se pitää tehdä erikseen alustamalla ensin alimoduulit (siirry ensin kloonattuun repositorioon)

git submodule init

ja päivittämällä sitten niiden tiedostot

git submodule update

Näiden vaiheiden jälkeen repositorion pitäisi olla täydellinen. Alimoduulien erillisen alustamisen sijaan on myös oikotie, joka hakee kaiken yhdellä kertaa lisäämällä kloonaukseen ylimääräisen parametrin näin:

git clone --recurse-submodules https://github.com/fischuu/SE-MEI.git

Lisätietoa gitin alimoduuleista löytyy täältä.