(N) Gitin ignore-tiedoston tekeminen

Tavoitteet: Opin asettamaan .gitignore-tiedoston repositoriooni.

Ohjeita: Toteuta/täydennä henkilökohtaiseen Git-keskustietovarastoosi .gitignore-tiedosto, jonka avulla kaikki Qt Creatorin muodostamat build-hakemistot sekä .pro.user-päätteiset tiedostot jäävät pois versionhallinnasta.

Tärkeää

Tämän tehtävän tekeminen on erittäinen suositeltavaa, koska se helpottaa työskentelyäsi tällä kurssilla.

Tehtävä kannattaa tehdä, vaikka sen määräaika olisi jo kulunut umpeen.

Huomautus tiedoston sijainnista ja nimestä

Yllä mainitun tiedoston pitäisi löytyä kotihakemistostasi samalta tasolta kuin alihakemistot examples, student ja templates.

Huomaa, että tiedoston nimi alkaa pisteellä. Siksi se ei näy komentorivikomennolla ls, mutta se näkyy komennolla:

ls -a

Tai jos yrität etsiä tiedostoa Files-näkymän kauttaa, huomaa ruksata kohta Show Hidden Files.

Taustaa

On olemassa tiedostoja, joita ei haluta tallentaa versionhallintaan. Esimerkiksi kaikki Qt Creatorin build-kansiosta löytyvät tiedostot pystyy luomaan uudelleen suorittamalla buildin Qt Creatorissa, kun vain lähdekooditiedosto ja projektitiedosto on tallella, joten miksi lisäisimme build-kansion sisältöä Gittiin.

Emme halua lisätä näitä tiedostoja vahingossa esimerkiksi git add --all -komennolla tai katsoa edes kyseisiä tiedostoja git status -komennon yhteydessä. Asiassa auttaa .gitignore -niminen tiedosto. Kyseessä on tavallinen tekstitiedosto, johon on lueteltu kaikki versionhallinnan ulkopuolelle jäävät polut ja tiedostot. Repositoriossasi on olemassa tämänniminen tiedosto, mutta sinun pitää täydentää sitä.

Tiedoston .gitignore nimi alkaa pisteellä. Siksi se ei näy komentorivikomennon ls listauksessa, mutta se näkyy komennolla ls -a. Tiedosto ei myöskään näy etätyöpöydän Files-näkymässä, ellet ole ruksannut kohtaa Show Hidden Files.

Tässä kohdassa voimme muistella villikorttien käyttöä ja mitä tarkoittavat esimerkiksi *.txt tai *~. (Jos et muista, mitä nämä tarkoittavat, voit tarkistaa asian materiaalin lopusta löytyvästä luvusta Itseopiskelu: Gitin käyttö komentoriviltä ja sieltä aliluku Komentorivioperaatioita ja kohta Polkuihin liittyviä erikoismerkkejä.)

Huomaa erityisesti, että merkin * tilalle sallitaan mitä tahansa merkkejä mikä tahansa määrä (ml. nolla).

Alustavat toimenpiteet

Tiedostossa .gitignore on valmiina muutama rivi, jotka mm. estävät build-hakemistojen tulemisen mukaan versionhallintaan. Älä poista äläkä muuta näitä rivejä. Tässä tarkoitetaan siis kaikkia kotihakemistostasi löytyviä alihakemistoja, jotka alkavat tekstillä build, ja tämän tekstin jälkeen sallitaan mitä tahansa merkkejä mikä tahansa määrä.

Tehtäväsi on lisätä tiedostoon rivi, joka estää .pro.user-päätteisten tulemisen versionhallintaan.

Jotta huomaat lisättävän rivin vaikutuksen, luo repositoriosi juureen jollakin osaamallasi tavalla uusi tekstitiedosto: testi.pro.user. Komentorivillä (Terminal) tämä onnistuu komennolla:

touch testi.pro.user

Mitä sanoo komento git status?

Tehtävän tekeminen

Avaa .gitignore tekstieditorilla ja lisää sinne rivi, joka tunnistaa kaikki .pro.user-päätteiset tiedostojen nimet. Miten voisit hyödyntää merkkiä * nyt?

Katso uudestaan, miltä status näyttää.

Voit varmistella oman gitignoresi toimintaa käyttämällä komentoa git status. Jos lisäät uusia tiedostoja ja status ei näytä niitä “Untracked files:”-osassa, toimii gitignore ainakin kyseisen tiedoston kohdalla.

Vinkkejä tehtävän tekemiseen:

  • Varmista aluksi, ettei repositoriossasi ole tallentamattomia muutoksia.

  • Tehtävää tehdessäsi käytä apuna komentoa git status tilan tarkastelemiseen, kuten edellä opastettiin.

  • Halutessasi voit kirjoittaa .gitignore-tiedostoon myös muita rivejä, joilla voit karsia automaattisesti pois tietyn tyyppisiä tiedostoja.

  • Älä missään nimessä vahingossakaan lisää .gitignore-tiedostoon sellaisia tiedostoja, joita sinun pitää palauttaa, esim. .cpp, .hh tai .pro.

  • Jos keskustietovarastoosi on jo ehtinyt mennä .pro.user-päätteisiä tiedostoja, saat ne poistettua komennolla git rm.

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.