Git – perusteet ryhmätyössä

Tredun ohjelmistokehittäjien kurssimateriaaleja

Git – perusteet ryhmätyössä

Mikä on Git?

Git on versionhallintajärjestelmä.

Se tarkoittaa, että:

Git ei ole vain varmuuskopio — se on yhteistyötyökalu.


Miksi Git on tärkeä?

Ilman Git:iä:

Git auttaa:


Perusidea: historia

Git tallentaa projektin historian.

Jokainen commit on:

Voit palata mihin tahansa aiempaan commitiin, jos uusissa muutoksissa on ongelmia.


Branchit (haarautuminen)

Branch tarkoittaa projektin “haaraa”.

Voit ajatella näin:


Miksi brancheja käytetään?

Ilman brancheja:

Branchien avulla:


Esimerkki

Kun ominaisuus valmis, se yhdistetään mainiin. Jälleen meillä on toimiva versio, jossa on nyt uusia ominaisuuksia.


Merge (yhdistäminen)

Merge tarkoittaa kahden branchin yhdistämistä. Useimmiten se tapahtuu yhden kehittävän branchista main-haaraan, mutta myös kaksi muuta branchia voidaan yhdistää.

Kun työ on valmis:


Hyvä työskentelytapa

  1. Tee uusi branch, nimeä se joko omalla nimelläsi tai taskin nimellä
  2. Tee muutokset
  3. Tee commitit
  4. Yhdistä (merge) muutokset
  5. Ratkaise mahdolliset konfliktit

Versioiden tarkastelu

Gitillä voi:

Tämä on yksi Gitin tärkeimmistä ominaisuuksista. Tästä syystä kannattaa myös kiinnittää huomiota commitin viestiin, sillä se helpottaa oikean commitin löytymistä.

Tärkeät komennot

git clone
git add .
git commit -m "viesti"
git push
git pull
git checkout -b branch-nimi
git merge branch-nimi

Harjoitus 1

Lähtötilanne


Vaihe 1: Repositoryn kloonaus

Avaa terminaali ja suorita:

git clone REPOSITORY_URL

Vaihe 2: Luo tiedosto

touch index.html

Lisää tiedostoon myös HTML-pohja ja tallenna se normaaliin tapaan.

Vaihe 3: Ensimmäinen commit

Lisää tiedosto Gitiin (komentorivillä tämä vaihe pitää muistaa)

git add .

Tee commit

git commit -m "Added index.html"

Ja lopuksi lähetä commit GitHubiin:

git push

Vaihe 4: hakekaa muutokset kaikille

Muut ryhmän jäsenet tekevät pullin.

git pull

Nyt kaikilla pitäisi olla sama koodipohja samassa repositoryssa.

Vaihe 5: Jokainen tekee branchin

Jaatte jokaiselle jonkin pikkuisen asian, jonka he tekevät samaan tiedostoon. Sitten jokainen tekee oman branchin.

git checkout -b oma-nimi-feature

Esimerkiksi: git checkout -b anna-header

Vaihe 6: Tehkää muutoksia

Jokainen tekee omassa branchissaan jonkin muutoksen, joka erottuu (ei tarvitse olla järkevä, tämä sivu voidaan myöhemmin poistaa). Tallentakaa muutokset.

Vaihe 7: Commit ja push omassa branchissa

git add .
git commit -m "Added the header to index.html"
git push -u origin anna-header

Vaihe 8: Yhdistä branchit (merge)

Valitkaa yksi henkilö, joka tekee yhdistämisen. Hän tekee seuraavan:

git checkout main
git pull
git merge anna-header
git push

Lopuksi kaikki tekevät:

git pull

Nyt kaikilla pitäisi olla sama koodipohja jälleen.

Branchin poistaminen

Milloin branch voidaan poistaa?

Branch voidaan poistaa, kun:


Miten branch poistetaan paikallisesti

Poista branch omalta koneelta:

git branch -d anna-header

Poista branch myös GitHubista:

git push origin --delete anna-header

Git-konfliktit

Mikä on konflikti?

Konflikti syntyy, kun Git ei pysty automaattisesti yhdistämään muutoksia.

👉 Tämä tapahtuu yleensä, kun:


Milloin konflikteja syntyy?

Tilanne 1: Sama rivi muuttuu

Henkilö A:

<h1>Tervetuloa</h1>

Henkilö B:

<h1>Tapahtumat</h1>

Git ei tiedä, kumpi on oikea versio. Kun yritetään tehdä pull tai merge, syntyy konflikti.

Miltä konflikti näyttää?

Git lisää tiedostoon merkinnät:

<<<<<<< HEAD
<h1>Tervetuloa</h1>
=======
<h1>Tapahtumat</h1>
>>>>>>> branch-nimi

HEAD = nykyinen versio branch-nimi = yhdistettävä versio

Konfliktin ratkaisu

Avaa tiedosto ja etsi konfliktimerkinnät

<<<<<<<
=======
>>>>>>>

Ylempi vastaa sinulla olevaa versiota ja alempi versiota, jota yrität joko ottaa itsellesi tai mergetä.

Tässä kohtaa pitää valita jompikumpi tai yhdistää versiot tai kirjoittaa uusi versio.

Seuraavaksi poistetaan

<<<<<<<
=======
>>>>>>>

Lopputuloksen pitäisi olla tavallinen kooditiedosto.

Viimeisenä tehdään

git add .
git commit -m "Resolved conflict"