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:
- plugin dostupan u WordPress.org repou
- parent tema
- plugin koji ima vlastiti update mehanizam
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
Savjetodavna područja vezana uz ovu temu
Ove su usluge usklađene s temom članka i daju čišći prijelaz od edukativnog sadržaja do konkretne implementacije.
Nastavite čitati
Povezani članci
Prvo po zajedničkim kategorijama, a zatim po najjačem preklapanju u tagovima.