Tunnuksen luonti

- mene osoitteeseen http://bitbucket.org ja luo itsellesi tunnus

Repositorion luonti

- mene osoitteeseen http://bitbucket.org ja luo uusi repositorio (esim. nimelle Git Testing)
- täytä lomakkeelle projektikoitaiset tietosi

Asenna Git Bash *tai* vastaava Git-työkalu koneellesi

- SourceTree on ilmainen graafinen sovellus Gitin käyttöön: http://sourcetreeapp.com/
- Git Bash ja muut kilkkeet löytyvät täältä: Git Downloads

Kloonaan tyhjä repositorio paikalliselle koneelle BitBucketista

- käynnistä git bash ja mene kansioon, jossa haluat työskennellä (esim. komennolla: cd c:\hommat)
- voit katsoa kansion sisällön komennolla: ls -la
- anna komento (huom! muuta tunnuksesi): git clone https://tunnuksesi@bitbucket.org/tunnuksesi/git-testing.git
- git bash pyytää bitbucketin salasanaasi, syötä se ja tyhjä git-testing repositorio siirtyy koneellesi



- anna komento: ls -la, ja huomaat, että näin on käynyt
- siirry git-testing kansioon komennolla: cd git-testing
- anna komento: ls -la, ja huomaat, että kansiossa on .git-kansio, jonne versiohallinta toteutuu

Käyttäjätietojen määrittäminen

- anna komento: git config --global user.name "FIRST_NAME LAST_NAME"
- anna komento: git config --global user.email "MY_NAME@example.com"
- nyt käyttäjätiedot on asetettu

Tiedostojen sijoittaminen versiohallintaan, työskentely

- luo esim. HTML5-tiedosto haluamallasi editorilla ja tallenna se git-testing kansioon
- tarkista komennolla: ls -la, että tiedosto on kansiossa
- anna komento: git status



- järjestelmä näyttää, että tallentamaasi tiedostoa ei "seurata" versiohallinnan kannalta
- lisää tiedosto komennolla: git add tiedostonnimi
- seuraavaksi tiedosto täytyy lisätä git-versiohallintaan komennolla: git commit -m "kommentti tiedostosta"



- nyt tiedosto on paikallisessa git-versiohallinnassa, ei vielä bitbucketissa
- siirrä tiedosto vielä bitbuckettiin komennolla: git push -u origin master



- mene webbiselaimella repositorion osoitteeseen bitbucketissa
- tarkista tiedoston siirtyminen ja sisältö repositorion source-kansion kautta

Paikallisen tiedoston jatkokehitys ja siirto bitbuckettiin

- editoi paikallista tiedostoasi ja tallenna uudelleen
- anna komento: git status, ja huomaat, että tiedosto on muuttunut gitin kannalta



- toteuta edellisen kohdan git add, commit ja push -komennot saadaksesi muuttunut tiedosto bitbuckettiin
- git add tiedostonimi
- git commit -m "Added another paragraph to index.html"
- git push -u origin master



- tarkista tiedoston siirtyminen ja sisältö repositorion source-kansion kautta

Uuden ominaisuuden lisääminen

- edellisessä esimerkissä muutettiin suoraan masterissa olevaa koodia
- oikeasti olisi aina hyvä tehdä uusi oma "branch", jossa tehdään ja testataan uusi ominaisuus
- lisätty uusi ominaisuus lisätään sitten toteutuksen ja testauksen jälkeen "masteriin"
- tee uusi branch komennolla: git branch new-feature
- nyt kaikki muutokset tiedostoille tapahtuu tässä uudessa branchissä ja "master" pysyy ennallaan
- anna komento: git checkout new-feature ja nyt "tarkistat" muutoksia gitin suhteen tässä branchissä



- muuta/lisää edelleen jotain tallentamasi tiedoston sisältöä
- anna komento: git status ja huomaat tallentamasi tiedosto on muuttunut tässä branchissä



- lisää muutos tarkkailuun komennolla: git add tiedostonimi
- lisää versiohallintaan komennolla: git commit -m "A new feature is implemented."



- työskentely jatkuisi näin paikallisella koneella, kunnes feature olisi valmis
- new-featuren siirtäminen masteriin:
  - siirry takaisin masteriin komennolla: git checkout master
  - anna komento: git merge new-feature
  - voit tuhota branchin komennolla: git branch -d new-feature



- anna komento: git status
- huomaat, että paikallinen branch on edellä aikaisempaa masteria bitbucketin repositoriossa
- siirrä paikallinen versio bitbuckettiin komennolla: git push origin master



- tarkista bitbucketista

Repositorion käyttäminen toiselta koneelta (esim. kotona/töissä)

- asenna konelle git bash tai vastaava git työkalu
- avaa git bash ja kloonaa repositorio paikalliselle koneelle komennolla: git clone https://tunnksesi@bitbucket.org/tunnuksesi/git-testing.git



- nyt projekti on toisella koneellasi ja voit jatkaa projektin tekoa
- tee haluamasi muutoksia tiedostoihin
- lisää seuraus muutettuihin tiedostoihin komennolla: git add tiedostonimi
- muista kommitoida paikalliseen repoon: git commit -m "kommentti"
- muista siirtää paikallisesta koneelta bitbuckettiin: git push origin master



- nyt tiedostot ovat taas bitbucketissa tallessa ja voit niitä käyttää muualta käsin
- voit tarkistaa tilanteen bitbucketista

Paikallisen projektin päivittäminen bitbucketista

- edellisissä kohdissa projekti kloonattiin paikalliselle koneelle ja muutoksia lähetettiin push komennolla
- paikallinen projekti voidaan päivittää vastamaan bitbucketissa olevaa projekti komennolla: git pull --all
- alla olevassa esimerkissä bitbucketissa olevassa repositoriossa on uudempi versio index.html tiedostosta



- nyt paikallista projekti voi taas työstää eteenpäin ja gittailla takaisin bitbuckettiin

Ristiriitojen ratkaisu

- jos repositoriota käyttää useampi henkilö, voi tiedostojen välille tulla helposti ristiriitoja
- alla olevassa esimerkissä bitbucketissa on ollut uudempi versio tiedostosta, jota on myös muutettu paikallisessa koneessa
- esimerkissä on lisätty paikalliseen repoon index.html ja yritetty pushata projekti bitbuckettiin



- tällöin tule ensin pyytää bitbucketissa oleva versio paikalliselle koneelle ja tutkia/korjata/päivittää ristiriita



- avaa tiedosto(t), jo(t)ka on määritelty omaavan ristiriitoja ja tee tarvittavat korjaukset
- alla olevassa esimerkissä näkyy eroavaisuudet paikallisen ja bitbucketista tulleen index.html välillä

<p>
<<<<<<< HEAD
Changes made in a another repo!
=======
Changes made in a one local repo!
>>>>>>> a836fa8bfebab1302abb306c4b8d34ef998bafbe
</p>

- tallenna muutokset ja voit lisää gittiin (ja bitbuckettiin)



- tarkista tilanne bitbucketista

Versiohistoria ja palaaminen aikaisempaan versioon

- voit tutkia versiohistoriaa projektista komennolla: git log



- voit tutkia eri versioiden eroja komennolla: git diff <commit hash> filename
- alla olevassa kuvassa näkyy erona lisätty <p>-kappale uusimman ja kolmanneksi uusimman välillä



- siirtyminen vanhempaan (tai mihin tahansa versioon) komennolla: git checkout <commit hash>
- alla olevassa kuvassa näkyy siirtyminen ensimmäiseen versioon, joka näkyy myös index.html-tiedoston sisällössä



- ja takaisin "uusimpaan masteriin" komennolla: git checkout master

Lähde ja lisämateriaalit

- yllä oli kuvattuna pienesti alkeita Gitin käyttöön
- git-versiohallintaan kuuluu paljon muitakin mahdollisuuksia ja menetelmiä

- opiskele lisää ja aloita oma gittailusi:
  - Bitbucket 101
  - Bitbucket and teams
  - Git