WordPress et .gitignore

Dans un projet WordPress, si on utilise Git, il n’est pas utile de commiter l’ensemble des fichiers de WordPress; uniquement ceux qui concernent notre projet.

Soit, en général, un thème et quelques plugins personnalisés (parfois un must-use).

Comment configurer son fichier .gitignore ?

Une première recherche nous emporte vers un dépôt github (qui recense par ailleurs des modèles de .gitignore pour de nombreux contextes).

*.log
.htaccess
sitemap.xml
sitemap.xml.gz
wp-config.php
wp-content/advanced-cache.php
wp-content/backup-db/
wp-content/backups/
wp-content/blogs.dir/
wp-content/cache/
wp-content/upgrade/
wp-content/uploads/
wp-content/wp-cache-config.php

Ce modèle va être orienté sécurité (il accepte tout, sauf les fichiers sensibles pouvant contenir des mots de passe, ou comprenant des données de cache).

Parfait en soit, mais incluant l’ensemble du Core de WordPress.

Après une recherche plus approfondie, nous allons tomber sur une démarche autre: on ignore tout, puis on ajoute les quelques dossiers qui nous intéressent.

Rappelons à toutes fins utile que le # en début de ligne signifie un commentaire, qu’un fichier ou un dossier listé dans le gitignore sera ignoré, et que le ! signale l’exclusion du gitignore (donc la prise en compte dans les commit).

Le voici, adapté et commenté par mes soins…

# Ignore tout à la racine, sauf .gitignore et "wp-content"
*
!.gitignore
!wp-content

# Ignore le contenu de "wp-content" sauf "plugins", "themes" et "mu-plugins"
wp-content/*
!wp-content/plugins/
!wp-content/themes/
!wp-content/mu-plugins/

# Ignore le contenu de "plugins" sauf le dossier de NOTRE plugin personnalisé
# (la ligne ! sera à répêter pour chaque plugin à commiter...)
wp-content/plugins/*
!wp-content/plugins/mon-plugin/
# et du "must-use" nommé ici "important.php"
wp-content/mu-plugins/*
!wp-content/mu-plugins/important.php

# Ignore le contenu de "themes" sauf le dossier de NOTRE thème
wp-content/themes/*
!wp-content/themes/mon-theme/

Bien sûr, si vous avez plusieurs plugins à envoyer vers Git, il faudra répéter la ligne en changeant le nom à chaque fois.

Idem pour le thème, mais c’est plus rare (sauf dans l’hypothèse d’un thème enfant, et dans ce cas il peut être intéressant d’inclure le parent ?)

Important: j’ai perdu du temps avec la mise au point de ce fichier, principalement car Git n’était pas à jour sur mon Mac… Humff. Saine lecture conseillée: Install and Update to latest version Git on Mac OSX 10.10 Yosemite.

Laisser une réponse