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 článek od Jana Biena, doporučuji ho pročíst celý. Pokud se zaměříme pouze na verzování, zmiňuje 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 commitovat a pushovat 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álohovací systém. Pro mě je důležité držet akorát kopii databáze, na což stejně používám plugin ze své „startovací sady“ a k tomu občas udělám ruční zrcadlo souborů z FTP. 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
    • blog
    • manual
    • projekty
    • www

Git repozitářem je složka ales_net a blog je omezen na vlastní subdoménu. Souborem .gitignore v ales_net mám zakázané sledování čehokoliv ve složce blog řádkem blog/*. Další řádek toto pravidlo obrací pro cokoliv ve složce vlastní šablony !blog/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.