Tredun ohjelmistokehittäjien kurssimateriaaleja
Git on versionhallintajärjestelmä.
Se tarkoittaa, että:
Git ei ole vain varmuuskopio — se on yhteistyötyökalu.
Ilman Git:iä:
Git auttaa:
Git tallentaa projektin historian.
Jokainen commit on:
Voit palata mihin tahansa aiempaan commitiin, jos uusissa muutoksissa on ongelmia.
Branch tarkoittaa projektin “haaraa”.
Voit ajatella näin:
Ilman brancheja:
Branchien avulla:
Kun ominaisuus valmis, se yhdistetään mainiin. Jälleen meillä on toimiva versio, jossa on nyt uusia ominaisuuksia.
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:
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ä.
git clone
git add .
git commit -m "viesti"
git push
git pull
git checkout -b branch-nimi
git merge branch-nimi
Avaa terminaali ja suorita:
git clone REPOSITORY_URL
touch index.html
Lisää tiedostoon myös HTML-pohja ja tallenna se normaaliin tapaan.
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
Muut ryhmän jäsenet tekevät pullin.
git pull
Nyt kaikilla pitäisi olla sama koodipohja samassa repositoryssa.
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
Jokainen tekee omassa branchissaan jonkin muutoksen, joka erottuu (ei tarvitse olla järkevä, tämä sivu voidaan myöhemmin poistaa). Tallentakaa muutokset.
git add .
git commit -m "Added the header to index.html"
git push -u origin anna-header
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.
Branch voidaan poistaa, kun:
Poista branch omalta koneelta:
git branch -d anna-header
Poista branch myös GitHubista:
git push origin --delete anna-header
Konflikti syntyy, kun Git ei pysty automaattisesti yhdistämään muutoksia.
👉 Tämä tapahtuu yleensä, kun:
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.
Git lisää tiedostoon merkinnät:
<<<<<<< HEAD
<h1>Tervetuloa</h1>
=======
<h1>Tapahtumat</h1>
>>>>>>> branch-nimi
HEAD = nykyinen versio branch-nimi = yhdistettävä versio
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"