Gitin käyttö tällä opintojaksolla

Tässä materiaaliosiossa esitellään käytännön toimenpiteet, joiden avulla Gitin käyttö onnistuu tällä opintojaksolla.

Henkilökohtainen tietovarastosi

Jokaiselle kurssille ilmoittautuneelle on muodostetaan kurssin ensimmäisellä viikolla henkilökohtainen Git-keskustietovarasto (eli Git-repositorio tai lyhyemmin Git-repo). Kun tietovarasto luodaan, saat opiskelijasähköpostiisi automaattisen ilmoituksen tietovaraston luomisesta.

Tärkeää

Jos et ole saanut automaattista ilmoitusta, älä yritä kirjautua repoosi, vaan tarkista ensin, ettei viesti ole mennyt roskapostiin. Jos sähköpostia ei löydy, vaikka sen olisi pitänyt tulla, ota yhteyttä kurssin henkilökuntaan (prog2@tuni.fi). Kirjautuminen ennen repon luomista aiheuttaa usein opiskelijan blokkaamisen repostaan.

Saatuasi ilmoitussähköpostin, pääset näkemään tietovarastosi sisällön web-selaimella, jolloin web-osoitteeksi (URL) annetaan:

https://course-gitlab.tuni.fi/compcs110-fall2026-p1/###.git

missä merkinnän ### paikalle on kirjoitat oman käyttäjätunnuksesi.

Kun Git tai web-selain kysyy käyttäjätunnusta ja salasanaa, tarkoitus on syöttää oma intranet-tunnus ja -salasana. Huomaa, että intranet-tunnus eli käyttäjätunnus on eri asia kuin sähköpostiosoite. Saat käyttäjätunnuksesi selville ainakin automaattiviestistä, joka sinulle pitäisi tulla tietovaraston luomisen jälkeen.

Web-käyttöliittymä on tarkoitettu tietovaraston sisällön tutkimiseen ja vaikka se tarjoaa joitain työkaluja esimerkiksi asetusten muuttamiseen, älä tee muutoksia tietovarastoon web-käyttöliittymän kautta. Jos nimittäin et tiedä täsmälleen mitä olet tekemässä, kurssin kannalta kriittiset ominaisuudet saattavat lakata toimimasta. Aivan erityisesti vasemman alakulman Settings-valintaa kannattaa vältellä. Sen sijaan esimerkiksi kohdat Files, Commits, Network ja Graphs sisältävät mielenkiintoista tietoa. Sitä enemmän, mitä enemmän versionhallintaa käytät.

Tarvitset edellä mainittua URLia myös reposi kloonaamisessa (ks. seuraava aliluku) sekä tehtävien palauttamisessa Plussaan.

Ennen ensimmäistä palautettavaa tehtävää

Tärkeä huomautus repositorion kloonaamisesta

Repositoriota ei kannata kloonata suoraan kotihakemistoon, vaan sitä varten kannattaa luoda uusi hakemisto (kansio). Tämä on erityisen tärkeää, jos olet ollut kurssilla aikaisemmin ja olet joskus aikaisemmin kloonannut samannimisen repositorion (repositoriosi nimi on aina sama kuin käyttäjätunnuksesi).

Tässä kohdassa selitetään, mitä alustustoimenpiteitä vaaditaan, jos käytät Gittiä komentoriviltä (Terminal). Jos sen sijaan käytät Gittiä Qt:n kautta, voit lukea tarvittavat alustoimenpiteet materiaalin luvusta Vaihtoehto: Gitin käyttö Qt Creatorin kautta ja sieltä kohta Alustustoimenpiteet.

Alustustoimenpiteet komentorivillä

Lyhyesti sanottuna tässä kohdassa pitää kloonata Git-repositorio, joka löytyy web-linkistä, joka mainittiin juuri edellisessä aliluvussa. Jos et vielä osaa käyttää komentoriviä, voit tutustua siihen lukemalla materiaalin lopusta löytyvän kohdan Komentorivioperaatioita.

Tietyssa url:ssa sijaitseva tietovarasto kloonataan annettuun polkuun komennolla:

git clone <url> <polku>

Voi siis kloonatessa asettaa paikallisen tietovaraston hakemistonimeksi jonkin muun, kuin oletuksena tulevan. Näin voit ylläpitää haluamaasi nimeämisperiaatetta hakemistorakenteessasi. Jos kloonatessa ei anna polkua paramerina, niin hakemisto syntyy työhakemistoosi. Oletuksena syntyvän hakemiston nimi on sama kuin kloonattavan repositorion nimi.

Voit kopioida komennossa tarvitsemasi URLin tietovaraston web-käyttöliittymästä (oikeasta reunasta) painamalla nappulaa “Code”, josta avautuu valikko:

Kloonauskomennon kopiointi

Jos olet asettanut GitLabiin SSH-avaimesi (ks. sitä käsittelevä materiaali), voit käyttää SSH-URLia, muuten käytä HTTPS-URLia.

Jos kloonasit repositorion kotihakemistosi alihakemistoon ohj2, repositoriosi löytyy hakemistopolulta:

/home/username/ohj2/username

missä sanan username tilalla on oma käyttäjätunnuksesi. Jos taas kloonasit repositoriosi suoraan kotihakemistoosi, se löytyy polulta:

/home/username/username

Joka tapauksessa polulla esiintyy hakemisto username kahteen kertaan, mutta tämän ei pitäisi tuottaa ongelmia. Git-komentojen pitäisi toimia ainoastaan alemman tason username-hakemistossa. (Jos ne toimivat myös ylemmän tason username-hakemistossa, ota yhteyttä kurssin henkilökuntaan esimerkiksi lähettämällä sähköpostia kurssin osoitteeseen prog2@tuni.fi.)

Lopuksi

Kuten edellä kerrottiin, Git-projekti voi sisältää mitä tahansa tiedostoja. Tämän kurssin Git-repositoriosi sisältää kolme alihakemistoa, joissa kaikissa on alihakemistoja, jotka ovat puolestaan Qt Creatorin projekteja. Qt Creator taas olettaa, että projekti on hakemisto, joka sisältää .pro-tiedoston ja C++-lähdekooditiedostoja. Suurissa ohjelmistoprojekteissa yleensä yksi Git-repositorio sisältää yhden Qt-projektin, joten Qt Creator odottaa, että kun Git-repositorio kloonataan, niin kloonattu repositorio sisältäisi .pro-tiedoston, josta Qt Creator voisi automaattisesti avata projektin. Koska kurssin repositoriossa on erilainen rakenne, tuli tässä tilanteessa virheilmoitus, mutta repositorio tuli silti kloonatuksi.

Mahdollisia ongelmatilanteita

Jos sinulla on (ollut) työsuhde Tampereen yliopistolla, voi GitLab:in kirjautumisessa aiheutua ongelma siitä johtuen, että tietojärjestelmässä on sinulle kaksi identiteettiä (opiskelija ja henkilökunta). Tässä tapauksessa ota yhteyttä kurssin sähköpostiosoitteeseen prog2@tuni.fi. Kerro sähköpostissa myös käyttäjätunnuksesi.

Jos kloonaaminen ei onnistu, voit kokeilla ensin kirjautua kertaalleen selaimen kautta tietovarastoosi. Joillakin opiskelijoilla tämä on ratkaissut ongelman.

Huomautus

Yliopiston course-gitlab, jota käytämme, sisältää joitakin rajoitteita normaaliin Gitiin verrattuna. Mm. opiskelijalla ei ole oikeuksia luoda course-gitlabiin omia repositorioitaan, eikä kurssikäyttöön luotuja repositorioita säilytetä kurssin päätyttyä ikuisesti. Palaamme tähän aiheeseen kurssin lopussa, kun Gitin käyttö on jo hallussa.

Jos haluat nyt jo harjoitella omien repositorioiden luomista ja Gitin käyttämistä muutenkin enemmän, kannattaa tutustua vaikkapa GitHubiin.