Git ja etätietovarastot (remote)¶
Kun ensimmäisellä kierroksella loit itsellesi paikallisen tietovaraston ja työkopion versionhallinnan keskustietovarastostasi (kloonasit repositorion), siellä oli valmiina vain kierrosten 1-3 materiaalit. Nyt kurssin henkilökunta on saanut lisää materiaaleja valmiiksi ja sinun pitää saada uudet materiaalit haettua käyttöösi.
Kurssin henkilökunta on tallentanut uudet materiaalit
keskustietovarastoon, jota kutsumme nimellä student_template_project
.
Tämän keskustietovaraston osoite on:
https://course-gitlab.tuni.fi/comp.cs.110-ohj-2_2021-KEVAT/student_template_project
Koska Git on hajautettu versionhallintajärjestelmä, voi
paikalliseen tietovarastoon hakea muutoksia useammasta keskustietovarastosta.
Nyt haet uuden kierroksen materiaalit
edellämainitusta student_template_project
:sta omaan paikalliseen
tietovarastoosi, josta sitten viet ne omaan keskustietovarastoosi.
Jotta voit hakea muutoksia jostain muualta kuin omasta
keskustietovarastostasi, sinun pitää asettaa tämä toinen
keskustietovarasto nk. remoteksi paikalliseen tietovarastoosi.
Nyt siis asetat student_template_project
:n remoteksi seuraavien ohjeiden
mukaan.
Voit tehdä toimenpiteen joko Qt Creatorissa tai komentorivillä. Valitse siis jompikumpi pari seuraavista neljästä osioista.
Vaihtoehto 1: komentorivi¶
Remoten asettaminen komentorivillä¶
Avaa komentorivi ja siirry paikalliseen tietovarastoosi. Suorita seuraava komento:
git remote add <shortname> <url>
jossa <shortname> on valitsemasi lyhyt, kuvaava nimi uudelle remotelle ja <url> remoteksi asetettavan tietovaraston osoite. Esimerkiksi:
git remote add kurssi https://course-gitlab.tuni.fi/comp.cs.110-ohj-2_2021-KEVAT/student_template_project
Voit testata, että edellinen onnistui, antamalla seuraavan komennon:
git remote –v
Tämä tulostaa listan kaikista remoteista, esim. seuraavasti:
kurssi https://course-gitlab.tuni.fi/comp.cs.110-ohj-2_2021-KEVAT/student_template_project (fetch)
kurssi https://course-gitlab.tuni.fi/comp.cs.110-ohj-2_2021-KEVAT/student_template_project (push)
origin https://course-gitlab.tuni.fi/comp.cs.110-ohj-2_2021-KEVAT/user_id.git (fetch)
origin https://course-gitlab.tuni.fi/comp.cs.110-ohj-2_2021-KEVAT/user_id.git (push)
Jos kaikki menee hyvin, tätä remoten lisäämistä sinun ei tarvitse tehdä kuin kerran tämän kurssin aikana.
Uusien materiaalien hakeminen remotesta komentorivillä¶
Kun remote on asetettu, voit hakea muutokset remotesta paikalliseen tietovarastoosi kirjoittamalla komennon:
git pull <remote> <branch>
jossa <remote> on edellä valitsemasi ja remotelle antamasi nimi, ja <branch> on se etätietovaraston haara, josta haluat muutokset hakea.
Huomaa, että tämä käynnistää Gitille määritellyn tekstieditorin (oletuksena vi), jossa sinun pitää kirjoittaa merge-viesti, joka kuvailee sitä, miksi merge on tehty, samoin kuin commit-viestejä olemme opetelleet kirjoittamaan. (Jos sattuu niin, että päädyt editoriin nimeltä vi, sieltä pääsee pois näppäilemällä merkit “:wq”.)
Esimerkiksi edellä esitetyn komennon voisi suorittaa näin:
git pull kurssi master
Haaroja emme ole vielä käsitelleet kurssin materiaaleissa, ne ovat enemmänkin seuraavan ohjelmointikurssin asiaa. Toistaiseksi käytä haarana aina masteria.
Tämä toimenpide sinun pitää tehdä kurssin aikana aina, kun kurssin
henkilökunta on laittanut uutta materiaalia jaettavaksi
student_template_project
:in, tyypillisesti siis aina uuden kierroksen
avautuessa.
Vaihtoehtoisesti (jos et halua kirjoittaa merge-viestiä editorissa) voit myös tehdä pull-komennon sijaan kahdessa vaiheessa seuraavasti:
git fetch <remote> <branch>
git merge <remote>/<branch> -m "Kirjoita viesti tähän"
Tästä huomaatkin, että git pull on oikeastaan vain git fetch + git merge.
Vaihtoehto 2: Qt Creator¶
Remoten asettaminen Qt Creatorissa¶
Avaa Qt Creatorissa jokin versionhallintaan talletetuista
projekteista, jotta tarvittava valikko on käytettävissä. Valitse
Qt Creatorin valikosta toiminto Tools > Git > Remote Repository >
Manage Remotes...
:
URL:na pitäisi olla
https://course-gitlab.tuni.fi/comp.cs.110-ohj-2_2021-KEVAT/xyz.git
tai
git@course-gitlab.tuni.fi:comp.cs.110-ohj-2_2021-KEVAT/xyz.git
,
missä kohdan xyz
tilalle lukee käyttäjätunnuksesi.
Klikkaa “Add…” ja kirjoita avautuvaan dialogiin kohtaan “Name” jokin
lyhyt, kuvaava nimi uudelle remotelle (esim. kurssi
), sekä kohtaan “URL”
tämän materiaaliosion alussa mainittu osoite.
Tämän jälkeen uusi remote näkyy listalla:
Jos kaikki menee hyvin, tätä remoten lisäämistä sinun ei tarvitse tehdä kuin kerran tämän kurssin aikana.
Uusien materiaalien hakeminen remotesta Qt Creatorissa¶
Kun remote on lisätty listalle, valitse se hiirellä klikkaamalla.
Tämän jälkeen, kun klikkaat “Fetch”, haetaan remotesta muutokset, eli
student_template_project
:n tapauksessa uuden kierroksen materiaalit
paikalliseen tietovarastoosi, mutta ne eivät vielä näy
hakemistorakenteessa. Klikkaa “Close”.
Seuraavaksi valitse Qt Creatorin valikosta toiminto Tools > Git >
Local Repository > Branches...
:
Valitse listalta juuri lisäämäsi remoten alla oleva haara master
(rivi, jolla lukee master, mutta älä sekoita tätä toiseen master-riviin).
Klikkaa “Merge” (ja jos aukeaa valikko,
valitse avautuvista vaihtoehdoista “Fast Forward”). Jos tietovarastosi
oli siinä tilassa, jossa sen piti olla, muutosten pitäisi nyt näkyä
hakemistorakenteessa. Tässä tapauksessa siis templates
-hakemiston
alta pitäisi löytyä uusia kierroksia.
Jos esimerkiksi olet muuttanut templates
-hakemiston sisältöä, voi
olla mahdollista, ettei edellä kuvattu toimenpide onnistu. Tässä
tapauksessa ota yhteyttä kurssin henkilökuntaan.
Tämä toimenpide sinun pitää tehdä kurssin aikana aina, kun kurssin
henkilökunta on laittanut uutta materiaalia jaettavaksi
student_template_project
:in, tyypillisesti siis aina uuden kierroksen
avautuessa.