Versionhallinta ja Git Johdanto Versionhallinta version control tarkoittaa

  • Slides: 17
Download presentation
Versionhallinta ja Git

Versionhallinta ja Git

Johdanto • Versionhallinta (version control) tarkoittaa tiedostojen eri kehitysvaiheiden (versioiden) tallentamista siten, että versioiden

Johdanto • Versionhallinta (version control) tarkoittaa tiedostojen eri kehitysvaiheiden (versioiden) tallentamista siten, että versioiden sisältö voidaan kuvailla (metadata) samoin kuin versioiden väliset erot. − Versionhallinta ei liity pelkästään ohjelmointiin, koska mistä tahansa dokumentista voidaan, ja on usein toivottavaa, tehdä versioita. − Ensimmäisillä ohjelmointikursseilla versionhallinnan hyödyt käyvät ilmi vähitellen harjoitustöiden yhteydessä. − Harjoitustyön tekeminen voi edetä siten, että siitä tehdään jokin osa valmiiksi, jonka jälkeen uusin versio tallennetaan omin versiota kuvaavin kommentein varustettuna vaikkapa 2

Johdanto • Versionhallintaan voidaan käyttää erillistä ohjelmistoa, versionhallintajärjestelmää. − Joissakin ohjelmistoissa on sisäänrakennettua versionhallintaa.

Johdanto • Versionhallintaan voidaan käyttää erillistä ohjelmistoa, versionhallintajärjestelmää. − Joissakin ohjelmistoissa on sisäänrakennettua versionhallintaa. Ohjelma voi palauttaa aiemman version peruuttamistoiminnolla (undo) tai se voi säilyttää muutaman edellisen version tiedostosta tallentamalla ne eri nimille. • Järjestelmällinen versionhallinta on tärkeä osa laajempia ohjelmistoprojekteja, joissa saattaa työskennellä tuhansia ihmisiä. − Ryhmätyöskentely ei olisi mahdollista ellei eri henkilöiden eri aikoihin tekemiä muutoksia ohjelmistojen eri ja samoihin osiin voida hallinnoida ja 3

Johdanto • Ohjelmistojen kehitys etenee usein rinnakkain siten, että osaa ohjelmasta työstetään omassa sivuhaarassaan

Johdanto • Ohjelmistojen kehitys etenee usein rinnakkain siten, että osaa ohjelmasta työstetään omassa sivuhaarassaan (branch) samalla, kun varsinainen työ etenee ohjelman päähaarassa (trunk, master). • Sivuhaara yhdistetään (merge) päähaaraan, jos sivuhaaran tavoitteet saavutettiin. − Haarojen yhdistäminen voi olla vaikeaa. Wikipedia. https: //commons. wikimedia. org/wiki/ File: Revision_controlled_project_vis ualization-2010 -24 -02. svg (Luettu viimeksi 12. 3. 2019. ) 4

Git • Perinteisen versiohallintajärjestelmän keskiössä on palvelin, joka säilöö keskitetysti eri versiot tietovarastoon (repository)

Git • Perinteisen versiohallintajärjestelmän keskiössä on palvelin, joka säilöö keskitetysti eri versiot tietovarastoon (repository) ja pitää yllä versiohistoriaa. − Palvelimen asiakkailla on käytettävissä osa projektin tiedostoista. • Git on eräs hajautettu versionhallintajärjestelmä, jonka säilöö tietovaraston ja historiatiedot paikallisesti. − Projektin jäsenet voivat ohjelmoida paikallisesti ja yhdistää versionsa myöhemmin, jos palvelin on saavuttamattomissa. − Mahdollistaa perinteiseen palvelimeen sidottuun 5

Git • Git-ohjelmiston (2005 -) luotiin Linuxkäyttöjärjestelmän ytimen kehitystyön versionhallintaan. • Alkuperäinen kehittäjä ja

Git • Git-ohjelmiston (2005 -) luotiin Linuxkäyttöjärjestelmän ytimen kehitystyön versionhallintaan. • Alkuperäinen kehittäjä ja ylläpitäjä Linus Torvalds. • Nimi viittaa osin Torvaldsiin (“ääliö”) ja osin Gitin ominaisuuksiin (tyhmä, yksinkertainen, toimii toisinaan). − Nimi ei ole tässä enne; Git on oikeasti toimiva versionhallinta-järjestelmä, jota käytetään laajalti avoimen lähdekoodin projekteissa ja ohjelmistoteollisuudessa. • Suunnittelun tavoitteena oli nopeus, koska Linux-6

Git. Hub ja Git. Lab • Git. Hub ja Git. Lab ja ovat verkkopalveluja,

Git. Hub ja Git. Lab • Git. Hub ja Git. Lab ja ovat verkkopalveluja, jonne voidaan tallentaa projekteja paikallisesta tietovarastosta etätieto-varastoon ja hakea projekteja paikalliseen tietovarastoon. • Sisältävät ryhmätyöskentelyä ja projektinhallintaa helpottavia graafisia työkaluja. • Paikallaan usean henkilön projekteissa. • Hervannan kampuksella on oma Git. Lab-asennus, jota on tarkoitus käyttää kurssilla. − Hervannan Git. Lab tulee saataville verkon kautta omalle ja mikroluokkien koneille. • Älä jaa harjoitustyötäsi julkisesti. 7

Git-asennus • Virallisimmat versiot löytyvät osoitteesta: https: //git -scm. com/downloads, jossa versiot yleisimmille käyttöjärjestelmille.

Git-asennus • Virallisimmat versiot löytyvät osoitteesta: https: //git -scm. com/downloads, jossa versiot yleisimmille käyttöjärjestelmille. • Windows-järjestelmään asennettaessa huomioitavaa: − Notepad++ voidaan asettaa oletuseditoriksi. − Komentoikkunan (terminal window) valinnassa ”Use Window’s default console windows” on tuttu ja turvallinen valinta. − Git. Bash tuo Windowsiin UNIX/Linux/Mac-laitteissa käytetyn bash-komentotulkin. • Tällä kurssilla Gitiä käytetään komentoikkunan kautta. 8

Git-järjestelmän tärkeimmät osat • Työhakemisto (työpuu, työalue, worktree), jossa ovat Gitin versioiman projektin tiedostot.

Git-järjestelmän tärkeimmät osat • Työhakemisto (työpuu, työalue, worktree), jossa ovat Gitin versioiman projektin tiedostot. • Valmistelualue (indeksi, index, stage, cache), jonne liitetään seuraavaan versioon tallennettavat muokatut tiedostot. • Paikallinen tietovarasto, johon tallennetaan versiot ja versiohistoria. − Sijaitsee työhakemiston. git-hakemistossa. − Uuden version tiedot luetaan valmistelualueelta 9

Git-järjestelmän tärkeimmät osat • Etätietovarasto on ulkoinen kohde (esimerkiksi Git. Lab), jonne paikallisten tietovarastojen

Git-järjestelmän tärkeimmät osat • Etätietovarasto on ulkoinen kohde (esimerkiksi Git. Lab), jonne paikallisten tietovarastojen sisältöä voidaan tallennetaan muun muassa synkronointia varten. • Etävarastoon tallentaminen on kurssin yhden hengen projekteissa tärkeää enemmän varmuuskopioinnin ja Git. Labiin tutustumisen kannalta. • Uudet projektit perustetaan yleensä etätietovarastosta kloonaamalla. − Nyt toimitaan paikallisesti, koska TUNI-Git. Lab ei ole vielä saatavilla. 10

Työprosessi Gitversionhallinnassa 1. Perusta paikallisesti uusi työhakemisto tai kloonaa se etätietovarastosta. 2. Ohjelmoi eli

Työprosessi Gitversionhallinnassa 1. Perusta paikallisesti uusi työhakemisto tai kloonaa se etätietovarastosta. 2. Ohjelmoi eli muokkaa Gitin seuraamia tiedostoja kunnes sopivat välitavoite on saavutettu. 3. Lisää seuraavaan versioon haluamasi tiedostot valmistelualueelle. 4. Tee uusi versio (commit). 5. Palaa 2. vaiheeseen niin pitkään kuin ohjelmoit tällä kertaa. 6. Tallenna työsi lopuksi etätietovarastoon. 11

Gitin asetukset • Versionhallintaan säilötään aina tiedot version tallentajasta. Asetetaan tätä ajatelleen Gitin käyttäjän

Gitin asetukset • Versionhallintaan säilötään aina tiedot version tallentajasta. Asetetaan tätä ajatelleen Gitin käyttäjän nimi ja hänen sähköpostiosoitteensa. • git config --global user. name "Etunimi Sukunimi" • git config --global user. email "etunimi. sukunimi@tuni. fi" • Git-käynnistää version talletuksen yhteydessä editorin, jolla kirjoitetaan hyvä kommentti siitä, mitä uutta versiossa on, ellei kommenttia tehdä suoraan komentoriviltä. • Asetetaan Windows-koneella editoriksi Notepad++ 12

Paikallisen tietovaraston perustaminen • Perustetaan paikallisen tietovarasto jossain määrin vanhakantaisesti paikallisesti komentamalla. • Valitse

Paikallisen tietovaraston perustaminen • Perustetaan paikallisen tietovarasto jossain määrin vanhakantaisesti paikallisesti komentamalla. • Valitse jokin hakemisto työhakemistoksi. − Siirry komentoikkunassa cd-komennolla harjoitustyön harjoitustyo-hakemistoon, jos haluat kokeilla Gitiä siellä. • Anna komento: git init • Työhakemistoon ilmestyy kätketty. git-hakemisto, joka sisältää projektin tietovaraston. • Tietovaraston perustaminen tällä tavalla ei poista paikallisia tiedostoja. 13

Tietojen seurannan aloittaminen • Tehdään README-tiedosto, johon kirjoitetaan kuvaus työhakemistossa olevasta projektista. − REAME.

Tietojen seurannan aloittaminen • Tehdään README-tiedosto, johon kirjoitetaan kuvaus työhakemistossa olevasta projektista. − REAME. md-tiedostoissa käytetään yksinkertaista merkintäkieltä, jolla esitetyn dokumentin Git. Lab ja Git. Hub osaavat esittää HTML-muodossa. • Lisätään tiedosto valmistelualueelle hyvin monimuotoisella git add-komennolla: git add README 14

Tietojen seurannan aloittaminen • Tietovarastotilan voi katsoa git status komennolla: git status • Komennon

Tietojen seurannan aloittaminen • Tietovarastotilan voi katsoa git status komennolla: git status • Komennon kertoma on odotettu: README on odottamassa versiointia valmistelualueella. Tulosteesta nähdään myös, että 15

Tietojen seurannan aloittaminen • Tallennetaan versio eli tehdään commit. • Tiedosto tallennetaan tietovarastoon kommentin

Tietojen seurannan aloittaminen • Tallennetaan versio eli tehdään commit. • Tiedosto tallennetaan tietovarastoon kommentin kera commit-komennolla siten, että kommentti kirjoitetaan komentorivillä: git commit -m ″Aloitettiin projekti tekemällä README″ • Kommentin tulee olla melko lyhyt, mutta kuitenkin lukijalleen hyödyllinen. 16

Tietojen seurannan aloittaminen • Versiohistoriaa git log -komennolla katsomalla. Nähdään kuka tallensi version ja

Tietojen seurannan aloittaminen • Versiohistoriaa git log -komennolla katsomalla. Nähdään kuka tallensi version ja milloin versio tallennettiin. Tulosteessa on annettu myös SHA 1 -tiiviste, joka yksilöi version. Tuloste osoittaa myös, että merkistöongelmat ovat mahdollisia Windowsissa. 17