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.

Kurssilla tärkeitä verkko-osoitteita

Jokaiselle kurssille ilmoittautuneelle on muodostetaan kurssin ensimmäisellä viikolla henkilökohtainen Git-keskustietovarasto. Kun tietovarasto luodaan, saat opiskelijasähköpostiisi automaattisen ilmoituksen tietovaraston luomisesta. Jos et ole saanut sähköpostia, vaikka olisi pitänyt, tarkastathan, ettei sitä ole lajiteltu sähköpostiohjelmassasi roskapostiksi.

Tärkeää

Jos et ole saanut automaattista ilmoitusta, älä yritä kirjautua repoosi, vaan ota mieluummin yhteyttä kurssin henkilökuntaan. Kirjautuminen ennen repon luomista saattaa aiheuttaa opiskelijan blokkaamisen repostaan.

Saatuasi ilmoitussähköpostin, pystyt käyttämään tietovarastoa kahdella eri tavalla (seuraavissa kohdissa merkinnän ### paikalle on korvattava oma käyttäjätunnus):

  1. Web-selaimella, jolloin web-osoitteeksi (URL) annetaan:

    https://course-gitlab.tuni.fi/compcs110-spring2024/###
    

    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.

  2. Qt Creatorissa ja Linux-komentorivillä (Terminal) työskenneltäessä käytetään osoitetta:

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

    Jos kaikki sujuu ongelmitta, tätä osoitetta ei tarvita kuin kaksi kertaa: siinä vaiheessa, kun henkilökohtaisesta keskustietovarastosta muodostetaan etätyöpöydälle paikallinen tietovarasto aivan kurssin alussa, ja ensimmäisellä kerralla, kun palautat ohjelmakoodia automaattisesti arvioitavaksi Plussassa.

Kun Git tai web-selain kysyy edellisissä kohdissa käyttäjätunnusta ja salasanaa, tarkoitus on syöttää oma intranet-tunnus ja -salasana.

Ennen ensimmäistä palautettavaa tehtävää

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 jommastakummasta linkistä, jotka mainittiin edellä kohdassa Kurssilla tärkeitä verkko-osoitteita. Jos et vielä osaa käyttää komentoriviä, voit tutustua siihen lukemalla materiaalin lopusta, luvusta 14 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ä painamalla nappulaa “Clone”:

Kloonauskomennon kopiointi

Jos olet asettanut GitLabiin SSH-avaimesi (ks. sitä käsittelevä materiaali, joka löytyy luvusta 14), voit käyttää SSH-URLia, muuten käytä HTTPS-URLia.

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

/home/user_id/ohj2/user_id

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

/home/user_id/user_id

Joka tapauksessa polulla esiintyy hakemisto user_id kahteen kertaan, mutta tämän ei pitäisi tuottaa ongelmia. Git-komentojen pitäisi toimia ainoastaan alemman tason user_id-hakemistossa. (Jos ne toimivat myös ylemmän tason user_id-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.