Git ja GitHub – mitä eroa niillä on?

Git ja GitHub – mitä eroa niillä on? Git ja GitHub mainitaan usein samassa lauseessa. Molemmat liittyvät projektien tiedostoihin, muutoksiin ja ohjelmistokehitykseen, joten nimet menevät helposti sekaisin…
Git ja GitHub – mitä eroa niillä on?
Git ja GitHub mainitaan usein samassa lauseessa. Molemmat liittyvät projektien tiedostoihin, muutoksiin ja ohjelmistokehitykseen, joten nimet menevät helposti sekaisin. Aloittelijalle voi jäädä epäselväksi, pitääkö asentaa Git, luoda GitHub-tili vai tehdä molemmat.
Lyhyesti sanottuna Git on versionhallintajärjestelmä, kun taas GitHub on verkkopalvelu, jossa Git-projekteja voidaan säilyttää ja kehittää yhdessä. Ne toimivat hyvin rinnakkain, mutta niiden tehtävät ovat erilaiset.
Eron ymmärtäminen helpottaa käytännön työskentelyä. Tiedät esimerkiksi, miksi tietokoneella tallentamasi muutos ei vielä näy GitHubissa tai miksi Gitin käyttämiseen ei välttämättä tarvita verkkoyhteyttä. Käydään kokonaisuus läpi selkeästi ja tavallisten esimerkkien avulla.
Mikä Git on?
Git on työkalu, jonka avulla projektin tiedostoista pidetään järjestelmällistä muutoshistoriaa. Tätä kutsutaan versionhallinnaksi.
Kun työskentelet projektissa, voit tallentaa valitsemasi muutokset erillisiksi kokonaisuuksiksi. Myöhemmin pystyt tutkimaan, millainen tiedosto oli aiemmin ja mitä siihen on muutettu.
Git auttaa esimerkiksi:
- Vertailemaan tiedoston eri versioita.
- Selvittämään, milloin jokin muutos tehtiin.
- Palauttamaan aiemmin tallennettua sisältöä.
- Valmistelemaan muutoksia erillisissä haaroissa.
- Yhdistämään eri tekijöiden työtä.
Ajattele verkkosivun käyttöohjetta, jota muokkaat useana päivänä. Gitin avulla voit tarkastella maanantain ja torstain versioiden eroja ilman, että tallennat jokaisen version erikseen uudella tiedostonimellä.
Versionhallinnan tarkoitus on tehdä muutoksista seurattavia. Sen perusteita esitellään Gitin virallisessa oppaassa.
Mikä GitHub on?
GitHub on verkkopalvelu, joka tarjoaa Git-repositorioille yhteisen säilytys- ja yhteistyöpaikan. Repositorio tarkoittaa projektin tiedostojen ja versionhallintahistorian kokonaisuutta.
GitHubissa voit tarkastella projektia selaimella, jakaa sen muille ja keskustella muutoksista. Palvelu kokoaa tiedostojen ympärille myös tehtävien seurantaa ja muita projektityön toimintoja.
GitHubissa voidaan esimerkiksi:
- Ylläpitää julkisia ja yksityisiä projekteja.
- Kirjata virheilmoituksia ja kehitysehdotuksia.
- Tarkistaa muutoksia ennen niiden yhdistämistä.
- Julkaista projektin käyttöohjeita.
- Esitellä omia harjoituksia.
- Automatisoida ohjelmiston tarkistuksia.
Jos Git huolehtii tiedostojen versionhallinnasta, GitHub tarjoaa paikan, jossa tähän historiaan liittyvää yhteistyötä voidaan tehdä verkossa.
GitHubin tehtäviä kuvataan laajemmin palvelun omassa esittelyssä.
Tärkein ero näkyy tiedostojen sijainnissa
Aloittelijan kannalta hyödyllisin ero liittyy paikalliseen ja verkossa olevaan projektiin.
Paikallinen repositorio sijaitsee omalla tietokoneellasi. Siellä muokkaat tiedostoja ja tallennat muutoksia Gitillä. GitHubissa oleva etärepositorio sijaitsee puolestaan verkkopalvelussa.
Nämä eivät pysy automaattisesti samanlaisina jokaisen näppäinpainalluksen jälkeen.
Voit kirjoittaa tietokoneellasi uuden kappaleen käyttöohjeeseen ja tallentaa sen Gitin historiaan. GitHubissa näkyy silti vanha versio, kunnes lähetät uuden muutoksen sinne.
Vastaavasti toinen osallistuja voi päivittää projektia GitHubissa. Sinun tietokoneellasi oleva versio ei päivity itsestään, vaan haet muutokset erikseen.
Gitin hajautettu toimintatapa mahdollistaa sen, että projektia ja sen historiaa käsitellään paikallisesti. Tätä selittää Gitin toimintaperiaatteiden kuvaus.
Käytännön esimerkki: harrastuskerhon verkkosivu
Kuvitellaan, että teet ystäväsi kanssa harrastuskerholle verkkosivua. Sinä päivität tapahtumatekstit ja ystäväsi vastaa ulkoasusta.
Sinulla on projektista kopio tietokoneellasi. Muokkaat tapahtuman päivämäärää, tarkistat tekstin ja tallennat muutoksen Gitiin viestillä ”Päivitä syysretken ajankohta”.
Tämän jälkeen lähetät muutoksen GitHubiin. Ystäväsi voi nyt nähdä, mitä muutit, ja hakea päivityksen omaan projektiinsa.
Työskentely etenee esimerkiksi näin:
- Muokkaat tiedostoa omalla tietokoneellasi.
- Tarkistat tekemäsi muutoksen.
- Tallennat muutoksen Gitin historiaan.
- Lähetät tallennetun muutoksen GitHubiin.
- Ystäväsi hakee muutoksen omaan repositorioonsa.
Git hallitsee tässä tiedostojen historiaa ja muutosten siirtämistä. GitHub toimii yhteisenä verkkopalveluna, jonka kautta jaatte projektin.
Jos muokkaatte samaa kohtaa eri tavoin, yhdistäminen voi vaatia ristiriidan ratkaisemista. Versionhallinta auttaa tunnistamaan tilanteen, mutta sisällöllinen ratkaisu jää tekijöille.
Tiedoston tallennus, commit ja push ovat eri asioita
Yksi tavallisimmista sekaannuksista liittyy tallentamiseen. Git-työskentelyssä tavallinen tiedoston tallennus, commit ja push tarkoittavat eri vaiheita.
- Tiedoston tallennus kirjoittaa muokkauksen tietokoneella olevaan tiedostoon.
- Commit tallentaa valitut muutokset paikallisen repositorion historiaan.
- Push lähettää paikallisia commit-muutoksia etärepositorioon.
Näiden väliin kuuluu tavallisesti muutosten valitseminen seuraavaan commitiin. Komentorivillä tämä tehdään git add -komennolla.
Voit siis tallentaa tiedoston monta kertaa ennen yhtä committia. Voit myös tehdä useita committeja ennen kuin lähetät ne GitHubiin.
Hyvä commit muodostaa ymmärrettävän kokonaisuuden. Esimerkiksi yhden virheen korjaus on selkeämpi tarkasteltava kuin sekalainen joukko keskeneräisiä muutoksia.
Komentojen tehtävät selitetään GitHubin Git-ohjeessa.
Voiko Gitiä käyttää ilman GitHubia?
Kyllä voi. Git ei edellytä GitHub-tiliä tai projektin julkaisemista verkossa.
Voit käyttää Gitiä kokonaan omalla tietokoneellasi. Tämä sopii esimerkiksi henkilökohtaiseen harjoitusprojektiin, jonka muutoksia haluat seurata.
Paikallisesti voit:
- Muokata projektin tiedostoja.
- Tallentaa committeja.
- Tarkastella aiempaa historiaa.
- Luoda uusia haaroja.
- Vertailla tallennettuja versioita.
Monet Gitin perustoiminnot onnistuvat ilman verkkoyhteyttä, koska tarvittava historia on paikallisessa repositoriossa. Verkkoyhteyttä tarvitaan, kun keskustelet verkossa sijaitsevan etärepositorion kanssa. Asiaa käsitellään Gitin omassa oppaassa.
GitHub on yksi mahdollinen paikka etärepositoriolle. Git-projektin käyttö ei ole sidottu siihen.
Muista kuitenkin, että vain tietokoneella oleva historia on samalla laitteella kuin muukin työsi. Versionhallinta ja erillinen varmuuskopiointi palvelevat osittain erilaisia tarpeita.
Voiko GitHubia käyttää asentamatta Gitiä?
Kyllä voi. GitHubin selaintoiminnoilla pääset alkuun ilman paikallista Git-asennusta.
Voit esimerkiksi luoda repositorion, kirjoittaa README-tiedoston ja tehdä siihen muutoksia selaimessa. Myös haarojen ja muutosehdotusten harjoittelu onnistuu verkkopalvelussa.
Tämä on helppo tapa tutustua käsitteisiin, jos komentorivi tuntuu vielä vieraalta.
Selaimessa voit harjoitella:
- Projektin perustamista.
- Uuden tekstitiedoston luomista.
- Tallennusviestin kirjoittamista.
- Muutosten vertailemista.
- Muutosehdotuksen avaamista.
GitHub huolehtii tällöin selaimessa tehtävien muutosten tallentamisesta repositorion historiaan. Et suorita Git-komentoja itse, vaikka projektin versionhallinta perustuu Gitiin.
GitHubin Hello World -harjoitus on tarkoitettu juuri tällaiseen aloittamiseen.
Mihin GitHub Desktop sopii?
GitHub Desktop on tietokoneelle asennettava graafinen sovellus Git-työskentelyyn. Sen avulla monia versionhallinnan toimintoja voi käyttää painikkeilla komentojen kirjoittamisen sijaan.
Sovelluksessa voit tarkastella muuttuneita tiedostoja, tehdä committeja ja siirtää muutoksia paikallisen repositorion sekä GitHubin välillä.
Kolmen nimen ero on siis seuraava:
- Git on versionhallintajärjestelmä.
- GitHub on projektien verkkopalvelu.
- GitHub Desktop on graafinen työpöytäsovellus.
Desktop voi helpottaa siirtymistä selainharjoituksista omalla tietokoneella työskentelyyn. Se tekee eri vaiheet näkyviksi, mutta niiden merkitys kannattaa silti opetella.
Esimerkiksi commit ja push säilyvät erillisinä toimintoina myös graafisessa sovelluksessa. Desktopin käyttötarkoitus esitellään GitHubin virallisessa ohjeessa.
Ovatko Git ja GitHub ilmaisia?
Git on maksuton avoimen lähdekoodin versionhallintajärjestelmä. Sen paikallinen käyttö ei vaadi GitHubin maksullista tilausta.
GitHubista on sekä ilmaisia että maksullisia vaihtoehtoja. GitHub Free tarjoaa henkilökohtaisille käyttäjille mahdollisuuden julkisiin ja yksityisiin repositorioihin, mutta ominaisuuksissa ja lisäpalveluiden käyttörajoissa on eroja.
Tavalliseen aloitusharjoitteluun ilmainen palvelupaketti riittää yleensä hyvin.
Maksullisia ominaisuuksia kannattaa arvioida vasta, kun tunnistat konkreettisen tarpeen. Aloittelijan ei tarvitse hankkia laajaa pakettia vain opetellakseen tiedostojen lisäämistä tai versionhallinnan perusteita.
Ajantasaiset erot löydät GitHubin palvelupakettien kuvauksesta.
Kumpi kannattaa opetella ensin?
Voit aloittaa GitHubin selaintoiminnoista, jos haluat päästä nopeasti kokeilemaan. Luo pieni repositorio, kirjoita esittely ja tallenna siihen yksi muutos.
Siirry sen jälkeen paikalliseen työskentelyyn. Kun sama projekti on sekä tietokoneella että GitHubissa, niiden välinen ero muuttuu konkreettiseksi.
Hyvä oppimisjärjestys on:
- Ymmärrä repositorion tarkoitus.
- Tee yksi selkeä commit.
- Tutki muutosta historiasta.
- Opettele paikallisen ja etärepositorion ero.
- Harjoittele muutosten lähettämistä ja hakemista.
- Kokeile haaroja ja muutosehdotuksia.
Pidä ensimmäinen projekti pienenä. Yhden käyttöohjeen päivittäminen opettaa työnkulusta enemmän kuin suuren projektin kopioiminen ymmärtämättä sen vaiheita.
Muista tämä Gitin ja GitHubin erosta
Git auttaa hallitsemaan projektin muutoksia ja historiaa. GitHub tarjoaa verkkopalvelun projektin jakamiseen, tarkasteluun ja yhteistyöhön.
Voit käyttää Gitiä ilman GitHubia ja aloittaa GitHubin käytön asentamatta Gitiä. Yhdessä ne muodostavat toimivan kokonaisuuden, kun haluat kehittää projektia omalla tietokoneellasi ja jakaa työn muiden kanssa.
Kun erotat tiedoston tallentamisen, commitin ja muutosten lähettämisen toisistaan, olet jo ymmärtänyt yhden versionhallinnan tärkeimmistä perusasioista.
