Versionhallinta ja Git WordPress-sivustolla

Joonas Vanhatapio

Versionhallinta ja Git ovat monelle kokeneemmalle kotisivujen rakentajalle jo ennestään ainakin nimenä tuttuja. Niiden hyödyntäminen voi tarjota monia merkittäviä etuja myös WordPress kehittämiseen.

Kirjoituksessa käydään läpi, mitä on versionhallinta, mikä on Git ja GitHub sekä miksi niitä kannattaa hyödyntää. Lopusta löytyy myös ohjeet, joiden avulla voi luoda oman GitHub-repon WordPress-kotisivujen tiedostoille.

Mitä on version­hallinta?

Versionhallinta tarkoittaa saman tiedoston eri versioiden eli kehitysvaiheiden tallentamista siten, että versioiden sisältöä ja niiden välisiä eroja voidaan kuvailla niin kutsutun metadatan avulla. Versionhallintaan tallennetaan perinteisesti seuraavat tiedot: milloin ja millaisia muutoksia on tehty mihinkin tiedostoon sekä kenen toimesta nuo muutokset on tehty.

Versionhallinta on tärkeä osa esimerkiksi laajoja sivustoprojekteja, joissa työskentelee useita ihmisiä yhtä aikaisesti. Toisaalta versionhallinnasta voi olla hyötyä myös pienemmissä projekteissa. On kuitenkin tärkeää erottaa versionhallinta kehitysympäristöstä ja varmuuskopioista.

Versionhallinta vs. kehitysympäristö

Versionhallinta on tarkoitettu ensisijaisesti sivuston kokonaisvaltaista kehitystä varten. Ne eivät ole siis ideaaleja pienten muutosten tai esimerkiksi päivitysten testaamista varten. Tällaiseen tarkoitukseen sivustojen kehitysympäristöt toimivat huomattavasti paremmin.

Osa WordPressille tarkoitetuista ylläpitoratkaisuista sisältää tällaisen kehitysympäristön jo valmiiksi. Esimerkiksi Zonerin WordPress hosting eli WP.one-palvelussa jokainen sivusto saa käyttöönsä oman kehitysympäristön, jota voi hyödyntää esimerkiksi juuri päivitysten testaamiseen.

Versionhallinta vs. varmuuskopiot

Versionhallinnan avulla on mahdollista palauttaa esimerkiksi yksi ainoa tiedosto tai sivuston osa, jos havaitaan jälkikäteen, että se aiheuttaa sivustolle ongelmia. V

armuuskopiot mahdollistavat myös sivuston palauttamisen aiempaan versioon, mutta se edellyttää aina koko sivuston palauttamista. Tämä tarkoittaa sitä, että myös mahdollisesti onnistuneet muutokset korvataan aiemmalla versiolla.

Varmuuskopioita ei pitäisikään käyttää sivustojen kehittämiseen, vaan ainoastaan sivuston palauttamiseen ongelmatilanteissa.

Git logo

Versionhallinta­järjestelmä Git

Git on hajautettu versionhallintajärjestelmä, joka kehitettiin alun perin Linux-käyttöjärjestelmän kehitystyön versionhallintaa varten. Järjestelmän kehityksen taustalla vaikutti vahvasti UNIX-työkaluajattelu, eli käytännössä Git on joukko työkaluja, joista kukin osaa jonkin asian hyvin.

Git kehitettiin vuonna 2005 Linus Torvaldsin ja muiden Linuxin kehittäjien toimesta. Sen pääylläpitäjänä on toiminut jo vuodesta 2005 lähtien Junio Hamano.

Nykyisin Gittiä käytetään laajasti sekä avoimen lähdekoodin projekteissa että ohjelmistoteollisuudessa. Sen käyttöä voidaankin suositella myös WordPress-sivustojen kehitykseen – etenkin, jos kehittäjiä on useita.

GitHub

GitHub on käytännössä yleisin alusta, joka mahdollistaa yhteistyön tekemisen Git-versionhallintajärjestelmän kanssa.

Github logo

Kyseessä on pilvipalvelu, jossa voidaan työstää erilaisia projekteja Git-versionhallintaa hyödyntäen. Usein puhuttaessa Gitistä tarkoitetaan nimenomaan GitHubia, koska se on niin kutsuttu standardipalvelu, johon versionhallintatiedot lähetetään.

GitHub sisältää myös esimerkiksi projektinhallintaan liittyviä työkaluja, jotka auttavat tehostamaan kehitystyötä. Niiden avulla voidaan vaikkapa määrittää yksittäisiä tehtäviä (engl. issue) tietyille henkilöille ja automatisoida toimintoja koodin päivittymisen yhteydessä.

GitHub on täysin ilmainen ja lähtökohtaisesti julkinen, eli koodaajat ympäri maailmaa voivat työstää yhdessä projekteja sen kautta. Palvelu on nykyisin Microsoftin omistama.

Mitä hyötyä Git-version­hallinnasta on?

Git-versionhallinnasta voi olla merkittävästi hyötyä verkkosivustojen kehitystyössä. Se auttaa sekä tehostamaan työtä että seuraamaan kehityksen seurauksena tehtäviä muutoksia.

Versionhallinnan ansiosta kehitystyötä on mahdollista tehdä rinnakkain ja useamman henkilön toimesta yhtä aikaa. Tarpeen mukaan kehitystyötä voidaan esimerkiksi jakaa erillisiin pienempiin kehityspolkuihin (engl. branch) ja yhdistää (engl. merge) niitä myöhemmin. Näin voidaan työskennellä tehokkaammin, kun koko projekti ei seiso yksittäisen kehityspolun takia.

Versionhallinnan avulla voidaan myös tarpeen mukaan palauttaa jonkin aiemman version osa mahdollisissa ongelmatilanteissa. Otetaan esimerkki: sivustolle tehdään pieni muutos tyylitiedostoon ja kaikki näyttää toimivan aluksi kuten pitääkin. Parin viikon päästä kuitenkin huomataan, että muutos rikkoi erään harvemmin käytetyn alasivu. Versionhallinnan avulla tyylitiedosto voidaan helposti palauttaa muokkausta edeltäneeseen tilanteeseen ilman, että koko sivustoa tarvitsee palauttaa.

WordPress-sivuston kehitys version­hallinnan avulla

Versionhallinta sopii loistavasti myös WordPress-sivuston kehittämiseen. Käytännössä versionhallinnan avulla seurataan kaikkia tai haluttuja sivustolle tehtäviämuutoksia. WordPress-sivuston kohdalla mahdollisia muutoksia voisivat olla esimerkiksi:

  • artikkelin julkaisu tai päivitys,
  • lisäosan asentaminen tai poistaminen,
  • muutokset ulkoasuteemaan sekä
  • erilaiset päivitykset teemoihin tai lisäosiin.

Versionhallinta voi merkittävästi nopeuttaa WordPress-sivuston kehitystyötä, koska sivuston eri osia voidaan työstää erillään ja yhdistää vasta lopuksi. Toisaalta se mahdollistaa myös erilaisten muutosten kokeilemisen matalammalla kynnyksellä, kun muutokset voidaan tarpeen mukaan perua ilman, että kaikkea tehtyä kehitystyötä menetetään.

WordPress kehittäjä käyttämässä Git versionhallintaa

WordPress ja Git

Git ei ole alunperin WordPressille suunniteltu, mutta toimii loistavasti myös WordPressin kanssa. Tosin kannattaa olla tarkkana sen suhteen, että kaikki halutut tiedostot todella tallentuvat Git avulla.

Tavallisesti Gitillä seurataan ainoastaan tiedostoissa tapahtuvia muutoksia, eli esimerkiksi sivustolle lisättäviä mediatiedostoja tai muita vastaavia. Nämä tiedot siis voidaan tallentaa Gitin avulla esimerkiksi GitHubiin.

Sen sijaan sivustolle tehtävät sisältömuutokset, esimerkiksi uudet artikkelit, sivut ja tilaukset, tallentuvat tietokantaan, joka ei ole varsinainen tiedosto WordPress-sivuston sisällä. Tämän takia WordPressin kanssa tulee käyttää jonkinlaista erillistä menetelmää esimerkiksi lisäosaa, jonka avulla nämä tiedot voidaan tallennetaan tiedostoksi. Tämän jälkeen tuo tiedosto voidaan tallentaa muiden tiedostojen tapaan esimerkiksi GitHubiin.

Eri tapoja Gitin käyttöön

Gittiä voidaan käyttää WordPressin kanssa hieman eri tavoin riippuen esimerkiksi siitä, tekeekö kehittämistä yksin vai onko mukana useampia kehittäjiä.

  1. Paikallisesti omalta koneelta – Tässä tapauksessa Gittiä käytetään ainoastaan omalta koneelta käsin ja muutokset päivitetään omalta koneelta WordPress-sivuston palvelinympäristöön.
  2. Julkisesti GitHubissa, paikallisesti omalla koneella ja palvelin ympäristössä – Tämä toimintatapa on ideaali, jos kehittäjiä on useita. Jokainen kehittäjä voi tehdä kehitystyötä omalla koneella, jonka jälkeen muutokset viedään yhdistämistä varten GitHubiin ja lopuksi vasta WordPress-sivuston palvelinympäristöön.

Miten aloittaa Gitin käyttö WordPress-sivuilla?

Git löytyy esiasennettuna sekä Zonerin webhotelleista että WP.one-palvelusta. Muiden palveluiden käyttäjien kannattaa varmistaa omalta hostingpalveluntarjoajaltaan, löytyykö Git  esiasennettuna. Alta löydät ohjeet, joiden avulla voit luoda oman repon eli tietovaraston GitHubiin ja kopioida oman WordPress-sivustosi tiedostot sinne.

Huomaathan, että Gitin käyttö vaatii hieman edistyneempää osaamista.

1. Luo tunnus GitHubiin Aluksi kannattaa rekisteröityä GitHubiin, jos tunnusta ei vielä ole github.com.

Valitse sign up ja täytä tarvittavat perustiedot.

Valitse seuraavaksi haluamasi lisenssi ja paina continue.

Seuraavassa kohdassa tulee valita omaan kokemukseen ja GitHubin käyttööliittyviä asioita. Valitse sopivat kohdat ja paina lopuksi submit.

Muista myös vahvistaa sähköpostiosoitteesi!

2. Luo uusi repo GitHubiin

Repo suomeksi myös tietovarasto (engl. repository). Huomaa, että ilmaisella tunnuksella voi luoda vain julkisia repoja.

3. Luo SSH-avain

Seuraavaksi tulee luoda SSH-avain, jos sellaista ei jo ole valmiiksi.

ssh-keygen
cat /data/.ssh/id_rsa.pub

4. Viedään tiedot GitHubiin

Kopioidaan saatu teksti GitHubin tietovarastoon kohtaan Settings ja Deploy keys.

  • Title: Palvelinavain
  • Key: Kopioitu teksti
  • Valitse kohta: Allow write access

Tässä ohjeessa annaetaan SSH-avaimelle oikeus vain kyseiseen repoon, joten jos halutaan niin kutsuttu globaali avain kaikkia repoja varten, kannattaa seurata GitHubin ohjetta.

5. Kopioidaan sivuston tiedot GitHubiin

Syötä seuraava komento ottaaksesi Git käyttöön ja kopioidaksesi WordPress-sivustosi tiedostot GitHubiin.

cd /data/wordpress
git init
git add .
git commit -m "Eka commit"
git remote add origin GITHUBIN_REPON_URL
git push origin main