Git er limet som holder moderne WordPress-prosjekter sammen. Når team bygger temaer og utvidelser, eller når en enkelt utvikler vil jobbe trygt, gir versjonskontroll oversikt, sporbarhet og ro i magen. Denne gjennomgangen viser hvordan bruke Git i WordPress-utvikling, fra strukturering av repo og miljøer til deploy, CI og trygg tilbakerulling. Den fokuserer på hva som faktisk bør ligge i versjonskontroll, hvordan de håndterer databasen utenfor Git, og en gjennomtenkt arbeidsflyt som skalerer fra solo til team. Underveis dukker det opp praktiske eksempler, navnestandarder, .gitignore-nyanser og verktøy som WP-CLI og GitHub Actions som gjør hverdagen raskere og sikrere.
Hovedpoeng
- Versjoner kun eget kodegrunnlag i wp-content (temaer, plugins og mu-plugins), og hold WordPress-kjerne, database og uploads utenfor Git med en presis .gitignore.
- Bruk miljøvariabler og separate miljøer (lokalt, staging og produksjon) for sikker konfigurasjon og forutsigbar drift uten å lekke hemmeligheter.
- Etabler en tydelig branchestrategi med feature/*-grener, små og presise commit-meldinger, pull requests og code review for ryddig historikk i Git i WordPress-utvikling.
- Håndter database og media utenfor Git: migrer med WP-CLI eller WP Migrate, bruk trygg search-replace som bevarer serialisering, og synk uploads via rsync eller S3/CDN med retning fra produksjon.
- Automatiser bygg, tester og deploy i Git i WordPress-utvikling med GitHub Actions eller GitLab CI, bruk tagger og semantisk versjonering for kontrollerte releaser og rask tilbakerulling.
Hvorfor Bruke Git I WordPress-Utvikling

Git i WordPress-utvikling gir et komplett hendelsesforløp for koden: hvem gjorde hva, når, og hvorfor. Med historikk kan de raskt finne når en bug ble introdusert og rulle tilbake uten panikk. I prosjekter med flere utviklere sørger Git for koordinering, slik at endringer ikke overskriver hverandre og at alle jobber på samme sannhet.
Det gir også ryddig release-håndtering. Ved å tagge versjoner kan teamet deploye en spesifikk utgave til staging eller produksjon, kontrollere hva som faktisk ble levert, og skifte mellom versjoner ved behov. Sikkerhetsmessig blir prosessen strammere: hemmeligheter holdes utenfor repo, og uønskede filer snevrer ikke seg inn i produksjon. Kort sagt: De får kontroll, forutsigbarhet og raskere feilsøking.
Kom I Gang Med Repo Og Miljøer

Initialiser Repo, Remote Og Tilganger
De kan starte lokalt i rotmappen for prosjektet:
git init- Opprett en fjernrepo i GitHub/GitLab/Bitbucket.
- Koble opp:
git remote add origin <repo-url> - Første commit og push:
git add . && git commit -m "Initial commit" && git push -u origin main
Gi teamet riktige rettigheter. Bruk helst deploy keys/SSH og minst mulig tilgang (les/skriv etter behov). Aktiver beskyttede grener for main/master og krev pull requests og code review før merge.
Definer Lokalt, Staging Og Produksjon
- Lokalt: utviklernes maskiner eller containere (Docker) for rask iterasjon.
- Staging: et testmiljø som speiler produksjon så tett som mulig. Her verifiseres funksjon, ytelse og sikkerhet før release.
- Produksjon: den live siden. Bare gjennomtestede endringer slippes hit, helst via en automatisert deployflyt fra Git.
Smart Struktur: Hva Som Bør I Versjonskontroll
Fokuser På Wp-Content Og Eget Kodegrunnlag
I et WordPress-prosjekt bør selve kodegrunnlaget versjoneres: egne temaer, plugins og eventuelle mu-plugins. Disse ligger typisk under wp-content/. WordPress-kjernen, databasen og brukeropplastet media er flyktige eller miljøspesifikke og bør ikke i Git.
.Gitignore For WordPress-Spesifikke Filer
Et gjennomtenkt .gitignore er gull. Et utgangspunkt kan være:
wp-config.phpog.env(hold hemmeligheter ute av repo)wp-content/uploads/(media)wp-content/cache/,wp-content/upgrade/,wp-content/debug.lognode_modules/,vendor/(installeres i build/deploy)- Systemfiler:
.DS_Store,Thumbs.db
Behold gjerne en wp-config.sample.php med trygge defaults for nye utviklere.
Konfigurasjon Per Miljø Uten Å Lekke Hemmeligheter
Konfigurasjon bør hentes fra miljøvariabler, ikke hardkodes. Et mønster er å lese $_ENV/getenv() i wp-config.php og sette ulike verdier for DB, salts og debug-modus i hvert miljø. Selve filen som peker på miljøvariable kan være .env (ignorert av Git). Slik unngår de at passord og nøkler havner i historikken.
Håndtering Av Kjernen, Egne Temaer/Utvidelser Og Avhengigheter
WordPress-kjerne oppdateres via admin, WP-CLI (wp core update) eller Composer, men legges som hovedregel ikke i repo. Eget tema og egne plugins versjoneres. Tredjepartsavhengigheter installeres i build/deploy-steget: composer install --no-dev for PHP og npm ci && npm run build for assets. Dette gir lettvekts-commits og forutsigbar bygging i alle miljøer.
Arbeidsflyt Med Brancher, Commits Og Code Review
Feature-Brancher Og Navngivning
En fast branchestrategi forenkler alt. Typisk flyt: main/master er stabil, og nye oppgaver utvikles i egne feature-grener:
- Opprett gren:
git checkout -b feature/navigasjonellerfix/ytelse-bilde. - Små, hyppige commits gjør review enklere. Push til remote og åpne pull request mot main.
Navnestandarder som feature/*, fix/*, chore/* og hotfix/* gir god oversikt i større team.
Gode Commit-Meldinger
Gode meldinger forklarer «hva» og «hvorfor» kort og presist:
- Tittel i imperativ: «Legg til lazy loading for hero-bilde».
- En kort forklaring i body ved behov: hva endres, bakgrunn, sideeffekter.
- Lenke til issue/oppgave.
Konsekvente meldinger forbedrer blame, historikklesing og endringslogg.
Merge-Strategier Og Konflikter
Krev code review før merge til main. Rebase/merge etter behov, men unngå kaotisk historikk. Større team foretrekker ofte «squash and merge» for renere main. Konflikter løses raskt, med en kort notis i PR-en om hva som ble valgt og hvorfor. Test alltid grenen etter konflikthåndtering før merge.
Databasen Og Media: Synk, Migrering Og Datahygiene
Søk/Erstatt Og Serie-Datastrukturer
WordPress lagrer ofte serialiserte PHP-strukturer i databasen. Klassisk søk/erstatt kan korruptere disse. De bør bruke verktøy som WP-CLI: wp search-replace 'old.test' 'new.test' --all-tables som håndterer serialisering trygt. Test på staging først.
Database- Og Konfig-Migrering Mellom Miljøer
Database migreres med verktøy som WP Migrate (Pro), WP-CLI export/import eller dedikerte rutiner i hostingmiljøet. Konfigurasjon styres av miljøvariabler, slik at samme kodebase kan kjøre på tvers av lokalt, staging og produksjon uten endringer i Git. Hold datahygiene: fjern testbrukere og dummy-innhold før produksjon.
Media-Synkronisering Utenfor Git
wp-content/uploads er ofte stort og i konstant endring. Synk det utenfor Git: rsync/SSH, S3-offloading med CDN, eller host-spesifikke synkverktøy. Etabler retning: typisk ned fra produksjon til staging/lokalt, slik at utviklere tester på realistisk data uten å risikere å overskrive live filer.
Distribusjon Fra Git Til Server
Enkle Deploy-Skript Og Hooks
Et minimum kan være en post-receive-hook på serveren som sjekker ut riktig gren/tag til en release-mappe og kjører build-trinn:
git fetch --all && git checkout -f <tag-eller-gren>composer install --no-dev --optimize-autoloadernpm ci && npm run build(hvis aktuelt)- Rydd cache og varm opp opcache.
Symlinking til en current-mappe gir rask, forutsigbar bytte mellom releaser.
Kontinuerlig Integrasjon Og Testing
GitHub Actions, GitLab CI eller Bitbucket Pipelines kan kjøre lint, tester og bygg automatisk på hver PR:
- PHP:
phpcs/phpcbf,phpstan,phpunit. - JS/CSS:
eslint,stylelint,jest/vitest. - WordPress: e2e med Playwright/Cypress mot et testmiljø.
Godkjent pipeline kan auto-deploye til staging ved merge. Produksjon låses bak manuell godkjenning.
Tagging, Versjonering Og Tilbakerulling
Tagger markerer utgivelser: git tag -a v1.4.0 -m "Release 1.4.0" && git push --tags. Semantisk versjonering (MAJOR.MINOR.PATCH) hjelper alle å forstå risikonivå. Skulle noe gå galt, ruller teamet tilbake ved å redeploye forrige stabile tag, eller ved en målrettet git revert av problemet. Bevar releasenotater for sporbarhet.
Konklusjon
Riktig bruk av Git i WordPress-utvikling gir kontroll, historikk og trygghet, særlig når mange bidrar og endringstakten er høy. Ved å versjonere eget kodegrunnlag, holde sensitivt og variabelt innhold utenfor repo, og automatisere bygg, tester og deploy, får de en robust leveranseflyt. En ryddig branchestrategi, presise commits og taggede releaser gjør utrulling og tilbakerulling ukomplisert. Summen er raskere utvikling, færre feil og et WordPress-prosjekt som tåler både vekst og tempo.
Ofte stilte spørsmål
Hva bør ligge i versjonskontroll i et WordPress-prosjekt?
I Git i WordPress-utvikling bør du versjonere eget kodegrunnlag: temaer, plugins og eventuelle mu-plugins under wp-content/. Hold WordPress-kjernen, databasen og wp-content/uploads utenfor. Legg til .gitignore for wp-config.php/.env, cache-, upgrade- og loggfiler samt node_modules og vendor. Installer avhengigheter i build (composer install, npm ci).
Hvordan sette opp repo og miljøer for Git i WordPress-utvikling?
Start i prosjektroten: git init, opprett remote og push første commit. Aktiver beskyttede grener på main og krev pull requests med code review; bruk deploy keys/SSH med minst mulig tilgang. Definer lokalt, staging og produksjon som speiler hverandre. Deploy fra Git, og bruk tags for ryddig release-håndtering.
Hvordan migrere database trygt og synkronisere media utenfor Git?
Bruk WP-CLI search-replace som håndterer serialiserte data ved URL-endringer. Migrer databasen via eksport/import eller dedikerte migreringsverktøy. Synkroniser media utenfor Git med rsync, S3/CDN eller host-verktøy. Hold retningen primært fra produksjon ned til staging/lokalt, og rydd testdata før noe sendes til produksjon.
Hva er en god branch- og commit-strategi for Git i WordPress-utvikling?
En robust strategi i Git i WordPress-utvikling er: hold main stabil, jobb i feature/, fix/, chore/* og hotfix/*-grener. Skriv små, meningsfulle commits i imperativ og lenk til saker. Åpne PR for review, håndter konflikter, test etterpå, og vurder squash and merge for ren historikk.
Kan jeg bruke Composer til å håndtere WordPress-kjernen og plugins?
Ja. I stedet for å committe kjernen og tredjepartsutvidelser kan Composer installere dem ved deploy. Bruk semantiske versjoner og låsefil for reproduserbare bygg, og speil som eksponerer plugins/temaer som pakker. Committ egen kode, kjør composer install –no-dev i pipeline, og hold nøkler i miljøvariabler.
Kan jeg deploye WordPress fra Git til delt webhotell uten SSH?
Ja, men med begrensninger. Sett opp CI som ved tag eller merge bygger assets, pakker koden og laster opp via SFTP/FTP med secrets lagret i verktøyet. Kjør nødvendige databaseoppgaver manuelt. Uten SSH får du ikke hooks eller WP-CLI, så test godt og vurder vedlikeholdsmodus under opplasting.