Začínám s Gitem: verzování WordPressu

Diskuzí kolem verzování WordPressu je na internetu mnoho. A stejně jako lze v Gitu dosáhnout totožných výsledků zcela rozdílnými cestami, i na toto téma je těžké najít shodu.

Dobrým shrnutím (z mnoha pohledů) na téma WordPress & Git je byl článek od Jana Biena, doporučuji ho pročíst celý ale ten je bohužel již smazaný tak, že ho ani Wayback Machine nenajde. Pokud se zaměříme pouze na verzování, zmiňoval dvě varianty: držet kompletní instalaci v Gitu nebo verzovat pouze vlastní tvorbu.

Workflow při zahrnutí celého adresáře si neumím v praxi ani představit. Možná mi něco uniká, ale chápu ho jako kompletně nastavenou instalaci na lokálu, do které by se musely stahovat všechny aktualizace včetně pluginů a ty pak teprve commitovatpushovat na server. Pro relativně statický web s potřebou možnosti kdykoliv se vrátit v historii webu to může dávat smysl. V případě tohoto blogu by se vše zbytečně zkomplikovalo.

Zároveň by Git neměl sloužit jako záloha, pro ty je systém nad AWS S3. Přikláním se tedy k variantě méně radikální, kterou Honza velmi pěkně shrnul:

O WordPressu tedy uvažuji jako o svébytném prostředí, do kterého je „zasazena“ má šablona (případně plugin).

Jak to funguje v mém případě?

Vlastní pluginy nepoužívám a potřebuji tedy v celé struktuře blogu verzovat jedinou složku, k čemuž lze využít .gitignore (podrobnosti lze dohledat v dokumentaci). Hosting má u Blueboardu následující strukturu, kdy každá složka je subdoménou:

  • ales_net
    • font
    • manual
    • projekty
    • www

Git repozitářem je složka ales_net a blog je omezen na vlastní subdoménu. Souborem .gitignoreales_net mám zakázané sledování čehokoliv ve složce www řádkem www/*. Další řádek toto pravidlo obrací pro cokoliv ve složce vlastní šablony !www/wp-content/themes/ales/*. Na lokálu žije strohý (ručně nainstalovaný) WordPress s importovanou databází z ostré verze, která již na serveru běží se všemi potřebnými pluginy a zapnutou automatickou aktualizací. Obě verze si tedy žijí svým životem, v podstatě o sobě neví a Git jim pouze podsouvá aktuální verzi šablony.


Pomohlo? Tento článek se vztahuje k mým začátkům s Gitem. Bude jich víc.