- git ei milläänlailla ole sidoksissa WordPressiin vaan sitä voi käyttää missä yhteydessä vaan
- itse olen mm. varmuuskopioinut työnalla olevan gradun muutoksia ja versioita gittiin
- Mutta koska tämä on WordPress & Git, niin käydään läpi myös miten gittiä voidaan käyttää WordPress-projekteissa
- WordPressin lähdekoodi löytyy myös GitHubista vaikkakin se varsinainen versionhallinta hoidetaan SVN:llä
- WordPressin Coren tiedostoja on siis kaikki muut paitsi
wp-content
-kansion sisältö - Yleensä Coren tiedostot halutaan jättää versionhallinnan ulkopuolelle, koska ei ole järkeä seurata Coren muutoksia projektikohtaisissa repoissa
- Projektikohtaisissa repoissa kannattaa seurata projektille relevantteja muutoksia
- Myöskään mitään salaista matskua (salasanoja, tms.) ei gittiin kannata laittaa, koska se säilyy siellä verrattain turvattomassa formaatissa
- Pidä erityisesti huolta, että
wp-config.php
ei tule sinulla koskaan gittiin mukaan - wp-configissa määritellään kaikki salasanat ja tunnukset, joita tarvitaan, jotta WP pääsee esim. tietokantaan käsiksi
- Pidä erityisesti huolta, että
- Esimerkki wp-projektista gitissä
- käydään päällisin puolin läpi
.gitignore
jawp-content
kansion sisältö
- käydään päällisin puolin läpi
- voit kopioida esimerkki projektin seuraavasti:
# Tarkista, että olet työpöydällä
pwd
# Kopioi eli kloonaa esimerkki projekti itsellesi
# Tämä luo työpöydällesi wordress-esimerkki-git-projekti -kansion
git clone https://github.com/saulirajala/wordress-esimerkki-git-projekti.git
# Sinulla on nyt käytännössä samassa tilanteessa oleva git-repo koneellasi kuin minulla
git log
- piirrä asiaa hahmottava kuva
Tee tämä muutos jollain editorilla (VS Code, Atom, Brackets, Notepad, tms.): Rekisteröi menu
Muutoksen jälkeen tarkista gitin status: git status
functions.php
tiedosto pitäisi olla muuttuneena
Tarkista ja hyväksy muutokset: git add -p
Commitoi muutokset: git commit -m "Register primary navigation"
Huomaa kuinka git log
palauttaa nyt erilaisen git historian kuin https://github.com/saulirajala/wordpress-esimerkki-git-projekti/commits/master
Tätä muutosta et voi viedä minun repoon, koska sinulla ei ole oikeutta kirjoittaa minun repoon. Eli jos kloonaat jonkun toisen repon, se yleensä tarkoittaa sitä, että alkuperäinen repo ja oma reposi elävät siitä lähtien omaa elämäänsä irrallaan toisistaan.
Poista wordpress-esimerkki-git-projekti -kansio työpöydältäsi: cd ... && rm -rf wordpress-esimerkki-git-projekti
- Forkkaus (englanniksi to fork) tarkoittaa sitä, että reposta luodaan kopioi sitä varten, että jossain vaiheessa voidaan kontribuoida takaisin joitain muutoksia takaisin repoon.
- pull request on pyyntö alkuperäisen repon kehittäjälle, että "Hei, oon tehnyt nämä muutokset. Voisitko lisätä ne omaan repoosi?"
- WordPressin parissa tätä harrastetaan myöskin jonkin verran, koska lisäosien kehittäjät pitävät lisäosan lähdekoodit monesti GitHubissa.
https://github.com/saulirajala/custom-site-template. Näytetään miltä:
- forkattu repo näyttää
- miltä pull request näyttää
Esimerkki repon forkkaukseen tarvitset github-tunnukset. Jos sinulla ei niitä ole, voit rekisteröityä helposti https://github.com/join
- Kirjaudu sisään githubiin: Sign in
- Mene haluamasi repon osoitteeseen: esim. https://github.com/saulirajala/wordpress-esimerkki-git-projekti
- Klikkaa Fork-painiketta oikeassa ylänurkassa
Tällöin sinulle luodaan oman github-tunnuksen alle kopio wordpress-esimerkki-git-projektista. Voit kloonata tämän repon kuten kohdassa Esimerkki. Tee samat muutokset kuin "Tee muutos esimerkki projektiin" -kohdassa.
- Nyt voit viedä muutokset omaan github-repoosi komennolla
git push origin master
- Mene Githubissa oman tunnuksesi repoon (eli siihen forkkiin) ja klikkaa Compare and Pull Request -painiketta
- Tarkemmat ohjeet
git push
on komento, jolla voit viedä muutoksesi lokaalista reposta johonkin toiseen repoon. Komennon ensimmäinen parametri määrittää mihin remoteen olet viemässä muutoksia ja toinen parametri sen mihin haaraan ko. repossa olet viemässä muutoksia.
Yleisin komento lienee git push origin master
ja tämä tarkoittaa, että olet viemässä muutoksia origin-nimisen remoten master-haaraan.
Komennolla git remote -v
näet kaikki repoosi konfiguroidut remotet. git remote add NIMI REMOTEN_OSOITE
lisää uuden remoten ja git remote rm NIMI
puolestaan poistaa sen. git clone
-komento asettaa oletuksena kloonatun repon origin-remoteksi.
Pieni remote harjoittelu:
# Pitäisi olla vain origin
git remote -v
# Lisää joku testi remote
git remote add production https://github.com/FORKER/REPOSITORY.git
# Pitäisi olla origin + production
git remote -v
# Uuteen remoteen puskeminen onnistuisi, jos production olisi oikea repo
git push production master
# Poista testi remote
git remote rm production
# Pitäisi olla vain origin
git remote -v
git pull
komentoa on monimutkaisempi demota, mutta se toimii käytännössä toiseen suuntaan kuin git push
. Pushilla viedään muuutoksia, pullilla haetaan muutokset. Muuten sama logiikka git pull origin master
tarkoittaa, että haetaan origin-repon master-haarasta uusimmat koodit.