GitHub

GitHub on erityisesti ohjelmoijille suunnattu sosiaalisen median tavoin toimiva lähdekoodinjakopalvelu, jossa on tarjolla paljon vapaasti lisensoituja ohjelmia ja muuta materiaalia.

GitHub on Linus Torvaldsin kehittämää avoimen lähdekoodin Git-versionhallintaa hyödyntävä lähdekoodin hallinta- ja jakopalvelu. Kuka tahansa voi tehdä itselleen käyttäjätunnuksen palveluun ja luoda sinne projektikohtaisia lähdekoodivarastoja, repositoryja eli repoja. Repo voi olla julkinen tai yksityinen. Julkisen repon luominen on ilmaista ja yksityisen repon luominen vastaavasti maksullista. Palvelussa on valtava määrä julkisia repoja, joista suurin osa on lisensoitu avoimen lähdekoodin lisenssillä. GitHub luokittelee repot automaattisesti ohjelmointikielen mukaan. Tällä hetkellä suosituin kieli on JavaScript 21 prosentin osuudella, mutta myös Ruby, Java, Python, Shell, PHP, C, C++, Perl ja Objective-C ovat runsaasti edustettuina.

Git on versionhallinta, kuten Subversion, mutta se on uudempi ja hajautetulla arkkitehtuurilla toteutettu. GitHub toimii taustalla olevan Git-versionhallinnan graafisena käyttöliittymänä, jolla voi helposti tarkastella eri lähdekooditiedostojen sisältöjä ja niiden muutoksia versioiden edetessä. Repon muutokset ovat selattavissa committeina, eli lähdekoodiin tehtyinä muutoskokonaisuuksina. Versionhallintaan tehtyjen vaihtoehtoisten ja kokeellisten haarojen, branch, selaaminen on myös helppoa GitHubin käyttöliittymällä. GitHubissa voi olla myös binäärimuotoisia tiedostoja, kuten ohjelmien tarvitsemia kuvatiedostoja, mutta erityisen hyödyllistä versionhallinta on tekstimuotoisten tiedostojen kanssa, sillä niiden muutokset ovat helposti esitettävissä. Ohjelmakoodin lisäksi GitHub sopiikin myös muun tekstimuotoisen materiaalin versionhallintaan ja jakamiseen. Hyvä esimerkki tällaisesta projektista on Oppikirjamaraton ja sen Vapaa matikka -kirjasarja.

GitHub sisältää sosiaalisen median kaltaisia ominaisuuksia. Kuka tahansa käyttäjä pystyy forkkaamaan minkä tahansa julkisen repon, eli tekemään itselleen kopion haluamastaan reposta ja aloittamaan oman version kehittämisen. Omaan versioon tehtyjä committeja voi puolestaan tarjota alkuperäiselle kehittäjälle pull requestien muodossa. Alkuperäisen repon ylläpitäjä voi sitten päättää, ottaako vastaan tarjotun toteutuksen. Juuri vapaan kopioinnin ja osallistumisen vuoksi GitHubin julkiset repot sopivatkin erityisen hyvin avoimen lähdekoodin projekteille. Omaan julkiseen projektiin onkin syytä epäselvyyksien välttämiseksi merkitä selkeästi lisenssi, jolla se on käytettävissä. Tämä tapahtuu tyypillisesti LICENSE- tai COPYING-nimisellä tiedostolla. Muita sosiaalista mediaa muistuttavia ominaisuuksia ovat repojen seuraaminen, committien kommentointi vaikka koodirivikohtaisesti sekä ohjelmasta löytyvien virheiden tai muiden huomioiden raportointi repon Issues-osiossa.

GitHubissa on lisäksi tarjolla yksinkertainen repokohtainen wiki projektin dokumentointia varten, erilaisia graafeja havainnollistamaan projektin haaroja ja tapahtumia sekä mahdollisuus tehdä ohjelman toimintaa esittelevä tai demoava web-sivusto html-tiedostoina gh-pages-nimiseen haaraan. Esimerkkinä Viikon VALO -sivustolla käytetyn galleriaohjelman gh-pages-haarasta muodostuva demo-sivu.

GitHub helpottaa avoimelle lähdekoodille luonteenomaista jakamista ja yhteistyötä. Hajautettuna versionhallintajärjestelmänä Git mahdollistaa samanaikaisesti ohjelmankehityksen tekemisen toisaalta omassa rauhassa omaan repoon ja toisaalta yhteistyössä muiden kanssa. GitHub on erinomainen työkalu, joka helpottaa tätä yhteistyötä madaltamalla kynnystä osallistua kehittämiseen joko vain kommentoimalla tai jopa aloittamalla kokeilut omalla kopiolla ja tarjoamalla tuotoksia takaisin alkuperäiseen projektiin.

Kotisivu
https://github.com/

Käyttöohjeet
Ohjeita GitHubin käyttöönottoon

  • galleryimage:GitHubin käytön aloitus askel askeleelta. 1) Gitkäyttövalmiiksi 2) Luodaan repository 3) Forkataan muidenprojekteja 4) Sosiaalinenverkosto
  • galleryimage:Oppikirjamaratonin Avoin matikka 1 -kirjanraakamateriaaliGitHubissa.
  • galleryimage:Yksittäisen lähdekooditiedoston sisältöä. (Opinsys /Walma)
  • galleryimage:Viimeisimmät ohjelmaan tehdytcommitit.
  • galleryimage:Commitissa tehtyjen muutosten tarkastelu. Lisätytrivit vihreällä, poistetutpunaisella.
  • galleryimage:Muutoksia voi kommentoida rivikerrallaan.
  • ![galleryimage:Muiden kuin alkuperäisen tekijän lähettämiä muutosehdotuksia, “pull requesteja”.](/images/Github-7.png “fig:galleryimage:Muiden kuin alkuperäisen tekijän lähettämiä muutosehdotuksia, “pull requesteja”.")
  • galleryimage:Committien määrät viikonpäivän ja kellonajan suhteengraafisestiesitettynä.
  • ![galleryimage:Projektille tehtyjä huomioita, eli “issueita”. Ohjelmointivirheitä, ominaisuustoiveita jne.](/images/Github-9.png “fig:galleryimage:Projektille tehtyjä huomioita, eli “issueita”. Ohjelmointivirheitä, ominaisuustoiveita jne.")
  • galleryimage:Projektin dokumentointiin käytettäväwiki.
  • ![galleryimage:Projektin demoamista varten voidaan käyttää “gh-pages”-haaran pohjalta luotavaa sivustoa.](/images/Github-11.png “fig:galleryimage:Projektin demoamista varten voidaan käyttää “gh-pages”-haaran pohjalta luotavaa sivustoa.")

Teksti: Pesasa
Kuvakaappaukset: Pesasa