Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011



Samankaltaiset tiedostot
Hajautettu versionhallinta Gitillä

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Versionhallinta MIKSI?

Versionhallinta MIKSI?

Versiohallinta ja Subversion Maunu Tuomainen

Versionhallinta. Matti Paksula ja Esko Luontola Syksy Tietojenkäsittelytieteen laitos Kuje Research Group

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

TIE Ohjelmistojen suunnittelu

Versionhallintaa. Versionhallinnan käyttöönotto SAS ympäristössä

Convergence of messaging

JOT2013 Demo1-ohje. Ville Isomöttönen, Jonne Itkonen 10. syyskuuta Varmista, että tunnukseesi on aktivoitu Unix-etäkäyttökoneet

Maiju Mykkänen Susanna Sällinen

KYMENLAAKSON AMMATTIKORKEAKOULU. Ubuntu. Yukun Zhou

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Liityntäpalvelimen asentaminen

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Linux - käyttöoikeudet

Simulaattorin asennus- ja käyttöohje

Salasanojen turvallinen tallentaminen KeePass ohjelmalla

ASENNUS- JA KÄYTTÖOHJE

Pedacode Pikaopas. Web-sovelluksen luominen

LINUX-HARJOITUS, MYSQL

MixW ja Dx-vihjeet (ohje) oh3htu

UCOT-Sovellusprojekti. Asennusohje

Mathcad Flexnet lisenssipalvelimen asennus

Käyttöohje Planeetta Internet Oy

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Jouko Nielsen. Ubuntu Linux

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Retrotec FanTestic ohjelman pikaopas

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Gitlab-järjestelmän versionhallintatyökalut tietojenkäsittelyn opetuksessa

KYMENLAAKSON AMMATTIKORKEAKOULU

Vedä ja pudota Maamittauslaitoksen JPEG2000-ortoilmakuva GeoTIFF-muotoon

Järjestelmän asetukset. Asetustiedostojen muokkaaminen. Pääkäyttäjä eli root. Järjestelmänhallinnan työkalut

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

Audio- ja videotiedostoja sisältävän PowerPoint-esityksen pakkaaminen

JOVISION IP-KAMERA Käyttöohje

Ubuntu. 1. Yleistä. 2. Versiot. 3. Rinnakkaisjulkaisut. 4. Mukana tulevat ohjelmistot. 5. Root-käyttäjä ja sudo. 6. Pakettienhallinta. 7.

Enigmail-opas. Asennus. Avainten hallinta. Avainparin luominen

Linuxissa uusi elämä 1

OHJE 1 (14) Peruskoulun ensimmäiselle luokalle ilmoittautuminen Wilmassa

Liityntäpalvelimen asentaminen

Ubuntu - tiedostohallinta

Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux

Opi kuvin: By Choice v.1.4 asennus Asennus järjestelmänvalvojan oikeuksin

Ohjelmiston asennusopas NPD FI

Kerro kuvin: InPrint 2.8 asennus Asennus järjestelmänvalvojan oikeuksin

Web Services tietokantaohjelmoinnin perusteet

ASENNUS JA KÄYTTÖOHJE

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Eclipse, SVN ja HelloWorld

Demo 13. Aihe: Linux. Opettaja: Antti Ekonoja. Tekijä: Heini Puuska

Ohje sähköiseen osallistumiseen

U3000/U3100 Mini (Eee PC:tä varten Linux-käyttöjärjestelmässä) Pikaopas

Luento 5. Timo Savola. 28. huhtikuuta 2006

Aditro Tikon ostolaskujen käsittely versio 6.2.0

Uudessa Excel-2007 on muutettuja / uusia ominaisuuksia jotka tulee huomioida kun Excel-2003 tehtyjä sovelluksia otetaan käyttöön Excel-2007:ssä.

Mathcad 14.0 Single User -asennus

5. HelloWorld-ohjelma 5.1

Kytkentäopas. Windows-ohjeet paikallisesti liitettyä tulostinta varten. Ennen Windows-tulostinohjelmiston asentamista

ICT4TN Tehtävänanto

Valitse ruudun yläosassa oleva painike Download Scilab.

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

XML tehtävien työnkulku

M-FILES JÄSENREKISTERIN KÄYTTÖOHJE

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje

TUTUSTUMINEN LINUX-KÄYTTÖJÄRJESTELMÄÄN

M-Files jäsenrekisterin käyttöohje

Kieliteknologian ATK-ympäristö Kolmas luento

Ubuntu tunkkausta En US / Helsinki asennuksen jälkeen jotta loki5ac toimisi oikein Winen päällä.

lejos-asennusohje Robottiohjelmoinnin harjoitustyö Kevät 2011

XML tehtävien työnkulku

Visual Case 2. Miika Kasnio (C9767)

Ohje sähköiseen osallistumiseen

Pilvimappi. Opas Mimoza Latifi. Kuitit talteen ja järjestykseen ilmaiseksi!

JOHDANTO... 5 PÄÄKONFIGURAATIOTIEDOSTO KIELET KÄYNNISTÄMINEN JOHDANTO... 6

Käyttöohje. MAITO metadatan hallintatyökalu. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

4. Lausekielinen ohjelmointi 4.1

Novapoint Lisensiointi. Copyright 2006, ViaNova IT AS. All rights reserved 1

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Ksenos Prime Käyttäjän opas

PIKAOPAS NOKIA PC SUITE 4.3. Nokia puhelimelle. Copyright Nokia Mobile Phones Kaikki oikeudet pidätetään Issue 6

1. NetBeans-ohjelman asennus ja käyttöönotto pva

SISÄLLYS 1 YLEISTÄ VERSIOT Tukiaika Variaatiot OHJELMISTO Paketinhallinta Komentorivisyntaksi

UBUNTU. UBUNTU - Peruskäyttö. Työpöytä. GNU Free Documentation License. Sisäänkirjautuminen. Yläpaneelissa on kolme valikkoa. Paneelit ja valikot

Uudet ominaisuudet. Realise Your Vision

Alustavia käyttökokemuksia SAS Studiosta. Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v alusta Luonnonvarakeskus / Luke)

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Johdatus edistyneeseen web-kehitykseen. Juuso Lappalainen

Asteri Laskutus (Dos)

USB-siirto-ohjelman ja ajurin asentaminen

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

Verkkolisenssin käyttöönotto

Matemaattinen optimointi I, demo

Transkriptio:

1 Joonas Ruotsalainen GIT PIKAOPAS Tutkielma 2011

2 SISÄLTÖ 1. JOHDANTO... 3 2. ASENTAMINEN... 4 3. KÄYTTÖ... 4 3.1 Perusasetukset... 4 3.2 Git:n ottaminen käyttöön projektissa... 5 3.3 Tiedostojen lisääminen versionhallintaan... 5 3.4 Git status... 5 3.5 Commitin tekeminen... 5 3.6 Login tarkastelu... 7 4. KEHITYSHAARAT... 8 4.1 Haaran luominen... 8 4.2 Kehityshaaran yhdistäminen... 8 5. PROJEKTIIN OSALLISTUMINEN... 10 5.1 Projektin kloonaaminen... 10 5.2 Muutosten hakeminen... 10 6. LÄHTEET... 11

3 1. JOHDANTO Git on ilmainen ja avoimen lähdekoodin versionhallintajärjestelmä, joka soveltuu niin pieniin kuin suuriinkin projekteihin. Git tukee nopeaa ja tehokasta hajautettua työskentelyä. Git on alunperin suunniteltu Linux-kernelin kehitykseen, jonka vuoksi se on suunniteltu mahdollisimman nopeaksi, johtuen linux-kerneliin tulevien päivitysten suuresta määrästä. Git toimii Linux, Mac OS X ja Windows käyttöjärjestelmissä. Se on julkaistu GPL2 lisenssillä. Git-versionhallintaa käyttää muun muassa linux-ydin, android, Qt ja eclipse.

4 2. ASENTAMINEN Git:n voi helposti asentaa Ubuntuun komennolla sudo apt-get install git git-core tai pakettienhallinnan kautta valitsemalla paketit git ja git-core. Kuva 1, pakettienhallinta Tämä asentaa kaiken tarvittavan git:n käyttöön. Tarvittaessa voi myös asentaa jonkin graafisen käyttöliittymän, mutta niitä ei käsitellä tässä tutkielmassa. 3. KÄYTTÖ Tässä tutkielmassa käsitellään git:n käyttöä komentoriviltä. Esimerkkinä käytetään yksinkertaista HelloWorld-ohjelmaa. 3.1 Perusasetukset Aluksi on säädettävä perusasetukset kuntoon. Niistä tärkeimmät ovat nimi ja sähköpostiosoite. Voit asettaa ne seuraavilla komennoilla: git config --global user.name "Etunimi Sukunimi" git config --global user.email osoite@example.com

5 3.2 Git:n ottaminen käyttöön projektissa Git:n voi ottaa helposti käyttöön projektissa siirtymällä projektikansioon ja antamalla komennon: git init Tämä luo piilohakemiston.git projektikansioon. Piilohakemisto sisältää kaikki git:n tarvitsemat projektikohtaiset tiedot. 3.3 Tiedostojen lisääminen versionhallintaan HelloWorld-projektiin lisätään hello.cpp ja readme tiedostot. Kun tiedostojen ediotointi on tehty, ne täytyy lisätä versionhallintaan. Versionhallintaan lisääminen onnistuu helposti komennolla: git add readme hello.cpp Tiedosto siis lisätään git:n seuraavasti: git add tiedostonnimi Voit myös lisätä kaikki tiedostot kerralla käskyllä git add. 3.4 Git status Voit tarkastella mitä muutoksia olet tekemässä käskyllä: git status. Git status antaa HelloWorld-projektissa seuraavanlaisen tulosteen: # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: hello.cpp # new file: readme # Ensimmäisellä rivillä näkyy kehityshaara eli branch. Tässä tapauksessa haaran nimi on master. Kehityshaarasta kerrotaan lisää myöhemmin. Alempana näkyvät tiedostot, jotka ollaan lisäämässä. 3.5 Commitin tekeminen Muutoksia projektiin ei olla vielä lisätty. Muutokset lisätään seuraavalla komennolla: git commit. Tämä komento avaa järjestelmän oletus tekstieditorin. Committin kirjataan kaikki tehdyt muutokset lyhyesti, selkeästi ja

6 mahdollisimman tarkasti. Tämän jälkeen tallennetaan ja suljetaan editori, jonka jälkeen muutokset ovat lisätty projektiin. Tulosteena käsky antaa seuraavan: [master (root-commit) 2e214dc] lisättiin readme ja hello.cpp tiedostot projektiin 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 hello.cpp create mode 100644 readme Tulosteessa näkyy kuinka montaa eri tiedostoa muokattiin, montako riviä lisättiin ja montako poistettiin. Lisäksi tulosteessa näkyy lisätyt tiedostot. Kuva 2, komennot. Kuvassa 2 näkyy git:n perus workflow: git init git add tiedosto git commit Tästä eteenpäin muokatut ja uudet tiedostot lisätään git add komennolla, jonka jälkeen lisätään git commit komennolla.

7 3.6 Login tarkastelu Voit tarkastella tehtyjä muutoksi projektissa komennolla git log. Käsky antaa tulosteena login tehdyistä commiteista. joonas@terminator:~/ohjelmoinnit/c++/helloworld$ git log commit 00773b69e8df0965b54db8c680f0a2072bb25d36 Date: Fri Apr 22 10:52:07 2011 +0300 alkukommentit hello.cpp tiedostoon commit d36acbfe62ed01ca083e2da54efc2ff3652452df commit 00773b69e8df0965b54db8c680f0a2072bb25d36 Date: Fri Apr 22 10:52:07 2011 +0300 alkukommentit hello.cpp tiedostoon commit d36acbfe62ed01ca083e2da54efc2ff3652452df Date: Fri Apr 22 10:51:06 2011 +0300 lisätty tulostus pääohjelmaan commit 413b3b1d064eed2b10a1590d372ae9ddd8c00547 Date: Fri Apr 22 10:48:51 2011 +0300 tehty runko pääohjelmaan commit ff40463aea49c8dd7c6d961d78035369fd9dcf14 Date: Fri Apr 22 10:47:21 2011 +0300

8 readme kirjoitettu commit 2e214dc7960bf1e7bc45a6e01d9be7340dcd6d61 Date: Fri Apr 22 10:16:49 2011 +0300 lisättiin readme ja hello.cpp tiedostot projektiin Tulosteessa näkyy commitin tunnus, tekijä, päiväys ja kirjoitettu kuvaus. 4. KEHITYSHAARAT Git tukee projekteissa eri kehityshaarjoja. Kehityshaarat ovat kätevä tapa kehittää sovellusta. 4.1 Haaran luominen Kehityshaaran voi luoda komennolla git branch testaus. Tämä luo uuden kehityshaaran nimeltä testaus.. Käskyllä git branch näkee versionhallinnan kehityshaarat ja tähdellä merkitty haara on aktiivinen. joonas@terminator:~/ohjelmoinnit/c++/helloworld$ git branch * master testaus Yläpuolisessa tulosteessa näkyy master ja testaus haarat, joista master on aktiivinen. Master haara on myös oletuksena ja se on pääkehityshaara. Kehityshaarasta voi siirtyä toiseen komennolla git checkout haarannimi. 4.2 Kehityshaaran yhdistäminen Testaus haaraan tehdyt muutokset eivät näy master haarassa. Jos teemme testaus haarassa muutoksia ohjelmaan ja commitoimme muutokset, niin ne eivät näy master haarassa. Tämä on hyvä tapa kehittää ohjelmaa. Voidaan

9 esimerkiksi tehdä haara nimeltä versio2, johon tehdää kaikki seuraavan version muutokset. Kun muutokset ovat valmiit voidaan versio2-haara yhdistää master haaraan. Yhdistäminen tapahtuu ensiksi asettamalla se haara aktiiviseksi johon yhdistäminen halutaan tehdä, jonka jälkeen annetaan käsky git merge haarannimi. HelloWorld-projektissa on lisätty testaus-kehityshaaraan muutamia muutoksia. Samalla on tehty muutoksia master-haaraan. Koodari on saanut valmiiksi testaus-haaran ja haluaa yhdistää sen master-haaraan. Hän tekee sen siirtymällä aluksi master-haaraan: git checkout master. Tämän jälkeen hän yhdistää testaus-haaran: git merge testaus. Käsky antaa seuraavanlaisen tulostuksen: joonas@terminator:~/ohjelmoinnit/c++/helloworld$ git merge testaus Auto-merging hello.cpp CONFLICT (content): Merge conflict in hello.cpp Automatic merge failed; fix conflicts and then commit the result. Tuloste kertoo, että yhdistämisessä on tullut ristiriita eli conflict. Ristiriita on tiedostossa hello.cpp ja sen sisällöksi on tullut: Kuva 3, merge conflict

10 Kuvassa 3 näkyy hello.cpp:n sisältö. <<<<<< HEAD tarkoittaa master-haarassa olevaa riviä ja sen alapuolella ovat testaus-haaran rivit. Koodarin täytyy nyt käsinein korjata ristiriidat. Tämän jälkeen hän tekee commitin. Nyt haarat ovat yhdistetty. 5. PROJEKTIIN OSALLISTUMINEN Yleensä ohjelmistoprojekteissa on mukana enemmäin kuin yksi koodari. Git mahdollistaa helpon monen koodarin yhteistyön. 5.1 Projektin kloonaaminen Kun projektiin liittyy mukaan uusi koodari, hänen täytyy kloonata eli kopioidan ohjelmiston koodit itselleen. Git:llä se onnistuu seuraavalla käskyllä: git clone polku/projektin/hakemistoon. Esimerkiksi seuraava käsky kopioi HelloWorldprojektin lähdekoodit: git clone /home/joonas/ohjelmoinnit/c++/helloworld/ Tämän jälkeen uusi koodari voi ohjelmoida ja commitoida muutoksia kopioituun projektiin. 5.2 Muutosten hakeminen Kun koodarit tekevät muutoksia ne eivät kuitenkaan päivity toisille koodareille. Muutokset täytyy hakea pull-käskyllä. Pull-käsky on seuraavanlainen: git pull polku/projektin/hakemistoon/ kehityshaarannimi Esimerkiksi HelloWorld-projektissa voisin hakea toisen koodarin muutokset seuraavasti: git pull /home/koodari/helloworld/ master Koodari, joka taas kloonasi projektini, voisi hakea tekemäni muutokset käskyllä git pull.

11 6. LÄHTEET http://git-scm.com/ http://book.git-scm.com/ http://fi.wikipedia.org/wiki/git