Blog članak

WordPress .gitignore za core, pluginove i teme

Koristite praktičan WordPress .gitignore koji po defaultu ignorira core datoteke, a dopušta vam da whitelistate samo pluginove i teme koje stvarno pratite u repou.

Moj preferirani .gitignore prikazan je ispod i po defaultu ignorira sve. To mi omogućuje da whitelistam samo one pluginove i teme koje želim uključiti u repo.

Iako ovaj .gitignore koristim za WordPress projekte, za stand-alone pluginove ili teme koristim opći .gitignore.

# -----------------------------------------------------------------
# By default all files are ignored.  You'll need to whitelist
# any mu-plugins, plugins, or themes you want to include in the repo.
#
# To ignore uncommitted changes in a file that is already tracked, use 
# git update-index --assume-unchanged
#
# To stop tracking a file that is currently tracked, use 
# git rm --cached
# -----------------------------------------------------------------

# ignore everything in the root except the "wp-content" directory.
/*
!wp-content/

# ignore everything in the "wp-content" directory, except:
# mu-plugins, plugins, and themes directories
wp-content/*
!wp-content/mu-plugins/
!wp-content/plugins/
!wp-content/themes/

# ignore all mu-plugins, plugins, and themes
# unless explicitly whitelisted at the end of this file
wp-content/mu-plugins/*
wp-content/plugins/*
wp-content/themes/*

# ignore all files starting with . or ~
.*
~*

# ignore node dependency directories (used by grunt)
node_modules/

# ignore OS generated files
ehthumbs.db
Thumbs.db

# ignore Editor files
*.sublime-project
*.sublime-workspace
*.komodoproject

# ignore log files and databases
*.log
*.sql
*.sqlite

# ignore compiled files
*.com
*.class
*.dll
*.exe
*.o
*.so

# ignore packaged files
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# -------------------------
# BEGIN Whitelisted Files
# -------------------------

# track these files, if they exist
!.gitignore
!.editorconfig
!.phpcs.xml.dist
!README.md
!CHANGELOG.md
!composer.json

# track favicon files, if they exist
!android-chrome-*.png
!apple-touch-icon*.png
!browserconfig.xml
!favicon*.png
!favicon*.ico
!manifest.json
!mstile-*.png
!safari-pinned-tab.svg
!site.webmanifest

# track these mu-plugins, plugins, and themes
# add your own entries here
!wp-content/mu-plugins/example-mu-plugin/
!wp-content/plugins/example-plugin/
!wp-content/themes/example-theme/

Zašto isključiti većinu datoteka

Pluginove ažuriram direktno na serveru koristeći ugrađenu WordPress funkcionalnost za update. Kada se plugin ažurira na serveru na taj način, izlazi iz sinkronizacije s Git repozitorijem. Situacija koju želim izbjeći je da iz lokalnog računala slučajno poguram zastarjelu verziju plugina na live stranicu.

Isti argument vrijedi i za WordPress core i za theme datoteke.

Što uključujem

U repo uključujem samo pluginove i teme koje su specifične za projekt. Primjerice, ako izrađujem custom temu za projekt, ta tema ide u repo. Ako pišem plugin specifičan baš za taj projekt, i on ide u repo.

Što ne uključujem

Plugin ili tema koji žive negdje drugdje ne uključuju se u repo. Neki primjeri su:

Kako voditi evidenciju pluginova

Budući da većinu pluginova ne uključujem u Git repo, korisno je voditi njihov popis kako biste lakše stvorili novu kopiju projekta. To može biti obična lista pluginova koje treba instalirati, ali možete koristiti i Composer kako biste to automatizirali.

Povezane usluge

Ove su usluge usklađene s temom članka i daju čišći prijelaz od edukativnog sadržaja do konkretne implementacije.

Nastavite čitati

Prvo po zajedničkim kategorijama, a zatim po najjačem preklapanju u tagovima.