En Trevenque utilizamos git para desarrollar sitios web de una forma organizada, y en los repositorios git no puede faltar el fichero .gitignore para decirle a git qué ficheros y directorios debe excluir del repositorio, y de esa forma no los tendrá en cuenta para el control de versiones: me refiero a ficheros como logs, binarios, configuraciones locales, específicos de tu editor, o directorios como los de cache o temporales.
Entendemos que no hay un fichero .gitignore ideal para todos los proyectos web, ya que cada sitio tiene unas necesidades específicas. En el caso concreto de WordPress, el .gitignore que utilices para desarrollar un plugin puede ser distinto del que uses para desarrollar un theme o un sitio web completo.
En esta ocasión, muestro un ejemplo de .gitignore para sitios web con WordPress, que usamos como base para nuestros proyectos:
# EXTENSIONS ############ *.7z *.dmg *.gz *.iso *.jar *.rar *.swp *.t3x *.tar.gz *.tar *.zip # TEMPORAL FILES ################ /tmp/ .tmp_* # PROJECT FOLDERS ################# /log/ /db/dumps/ # WORDPRESS ########### /web/wp-config.php /web/*-local-config.php /web/wp-content/uploads/ /web/wp-content/upgrade/ /web/wp-content/backup* /web/wp-content/ewww /web/sitemap.xml /web/sitemap_index.xml /web/sitemap.xml.gz /web/wp-content/plugins/query-monitor/ /web/wp-content/plugins/wp-all-import* /web/wp-content/plugins/wp-all-export* /web/wp-content/plugins/wordpress-importer/ # CACHE UNTRACKED FILES AND PLUGINS # ################################# /web/wp-content/advanced-cache.php /web/wp-content/autoptimize_404_handler.php /web/wp-content/db.php /web/wp-content/object-cache.php /web/wp-content/cache/ /web/wp-content/et-cache/ /web/wp-content/plugins/w3-total-cache/ /web/wp-content/w3tc-config/ /web/wp-content/wp-rocket-config/ /web/wp-content/plugins/nginx-helper /web/wp-content/plugins/wp-optimize # COMMON FILES ############## /_old/ /bin/dev* /web/robots.txt /web/.htaccess /web/.maintenance /web/nginx.conf ## OS GENERATED FILES ##################### .DS_Store .DS_Store? .localized .Spotlight-V100 .Trashes Icon? ehthumbs.db humbs.db sftp-config.json .well-known .bash* .vi* .vscode .idea .php-ini .php-version .devilbox # LOGS, DATABASES AND MISC # ######################## *.log *.sqlite *.sass-cache /web/wp-content/plugins/easy-wp-smtp/logs/ # PLESK ####### /plesk-stat/ # VERIFICATIONS ############### /web/google* /web/siteaudit-*.txt
Este .gitignore evita que se rastreen y se suban al repositorio un conjunto de ficheros y directorios habituales en nuestros proyectos de WordPress. Sin embargo, ten en cuenta que este es un ejemplo básico y puedes personalizarlo según tus necesidades específicas, tu forma de trabajar y los requisitos del proyecto.
Una cuestión habitual es almacenar, o no, el core de WordPress en el repositorio git. En nuestro caso, solemos mantener en el repositorio el core de WordPress porque entendemos el sitio como una aplicación web completa y, por razones de seguridad pero también por procesos de calidad, cualquier actualización del core queda registrada en el repositorio. No obstante, hay proyectos en los que podríamos ignorar el core de WordPress del repositorio, agregando estas líneas al .gitignore:
/web/wp-admin/ /web/wp-includes/
Hay algunas herramientas que te pueden ayudar a afinar tu .gitignore, o a crear uno nuevo para un proyecto concreto, como gitignore.io, aunque también puedes bucear en este sitio de plantillas de .gitignore por si encuentras uno adecuado para ti. Por otra parte, en esta documentación sobre .gitignore tienes descripción técnica, sintaxis y ejemplos para profundizar más.
Para terminar, te animo a que revises y ajustes el .gitignore de tus proyectos en función de tu forma de trabajar y de las características de cada proyecto, para optimizar el flujo y el rendimiento de tus repositorios. ¡Y déjame tu comentario aquí abajo para que podamos debatir! 😉
Créditos:
- Foto de Mohammad Mardani en Unsplash