Contents
Control de versiones con Git en proyectos WordPress
Introducción
En el desarrollo moderno de sitios y temas WordPress, llevar un control de versiones robusto resulta esencial. Git, creado por Linus Torvalds en 2005, se ha convertido en la herramienta de facto para gestionar el código fuente, colaborar en equipo y mantener un historial claro de cambios. Este artículo describe en detalle cómo implementar Git en proyectos WordPress, desde la configuración inicial hasta las mejores prácticas de trabajo colaborativo e integración continua.
¿Por qué elegir Git
- Distribuido: cada desarrollador tiene un repositorio completo localmente.
- Historial robusto: seguimiento detallado de commits, ramas y merges.
- Flujos de trabajo flexibles: GitFlow, GitHub Flow, Trunk-Based.
- Integración con plataformas: GitHub, GitLab, Bitbucket.
- Compatibilidad con hooks, CI/CD y despliegues automatizados.
1. Configuración inicial
- Instalar Git desde la página oficial: git-scm.com.
- Configurar usuario y correo:
git config --global user.name Tu Nombre git config --global user.email tu@correo.com
- Crear repositorio en local:
cd ruta/a/tu/proyecto git init
- Conectar con remoto (por ejemplo GitHub):
git remote add origin git@github.com:usuario/nombre-repo.git
2. Estructura típica de un proyecto WordPress en Git
Un repositorio bien organizado facilita la colaboración:
- /wp-content/ → temas, plugins y uploads.
- /wp-config.php → configuración sensible excluida con .gitignore.
- README.md → descripción del proyecto.
- composer.json (opcional) → gestor de dependencias.
Elemento | Descripción |
---|---|
/wp-content/themes/ | Temas activos y personalizados. |
/wp-content/plugins/ | Plugins hechos a medida o descargados. |
.gitignore | Evitar subir archivos sensibles o temporales. |
3. .gitignore recomendado
Evitar que se suban archivos no deseados:
/wp-config.php
/wp-content/uploads/
/node_modules/
/vendor/
/.log
.sql
.DS_Store
Estos patrones excluyen:
- Archivos de configuración privados.
- Imágenes y medios cargados.
- Dependencias instaladas localmente.
- Archivos del sistema.
4. Flujo de trabajo Git
Existen varios workflows populares:
- GitFlow: separación clara entre develop, feature, release y hotfix.
- GitHub Flow: más sencillo, rama principal (main) y ramas de característica.
- Trunk-Based: todas las ramas cortas y merges frecuentes a trunk.
Comparativa resumida:
Flujo | Ventajas | Desventajas |
---|---|---|
GitFlow | Estructurado, ideal para releases grandes. | Puede ser complejo para equipos pequeños. |
GitHub Flow | Simple, enfocado en Pull Requests. | Menos control de versiones de release. |
Trunk-Based | Despliegues continuos, menor overhead. | Riesgo de conflictos frecuentes. |
5. Ramas y etiquetado
Crear ramas para nuevas características:
git checkout -b feature/nuevo-slider
Cuando una versión esté lista, etiquetar:
git tag -a v1.2.0 -m Lanzamiento versión 1.2.0
Listar etiquetas:
git tag
6. Pull Requests y revisiones
Al usar plataformas como GitHub o GitLab, crear Pull Requests (o Merge Requests) para:
- Revisión de código.
- Discusión de cambios.
- Integración con pruebas automáticas.
Consejo: añadir descripciones claras, capturas de pantalla de UI y etiquetas para priorización.
7. Hooks y automatización
Git permite ejecutar scripts antes o después de determinadas acciones:
- pre-commit: validar estilo (PHP_CodeSniffer).
- pre-push: ejecutar tests unitarios con PHPUnit.
- post-merge: re-generar assets (npm, gulp).
Ejemplo de .git/hooks/pre-commit:
#!/bin/sh
phpcs --standard=WordPress src/
if [ -ne 0 ] then
echo Errores de estilo detectados.
exit 1
fi
8. Integración continua (CI/CD)
Al combinar Git con servicios como GitHub Actions, GitLab CI o Bitbucket Pipelines, es posible:
- Ejecutar pruebas en cada push.
- Deploy automático a entornos staging/producción.
- Generar informes de cobertura.
Ejemplo mínimo de .github/workflows/ci.yml:
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
- name: Install Dependencies
run: composer install --no-interaction
- name: Run PHPUnit
run: vendor/bin/phpunit
9. Submódulos y Composer
Para mantener plugins o librerías externas separadas:
git submodule add git@github.com:usuario/plugin-personalizado.git wp-content/plugins/plugin-personalizado
O gestionar dependencias con Composer:
composer require wpackagist-plugin/woocommerce
Esto mejora la trazabilidad de versiones y facilita actualizaciones.
10. Buenas prácticas
- Commits pequeños y descriptivos (imperativo).
- Actualizaciones frecuentes de develop/main.
- Uso consistente de .gitignore.
- Revisiones de código antes de merges.
- Pruebas automatizadas y despliegues controlados.
- Mantener documentación actualizada (README).
Conclusión
Incorporar Git en un proyecto WordPress aporta disciplina, claridad y eficiencia al flujo de trabajo. Desde la gestión de ramas hasta la integración continua, cada paso mejora la colaboración y la calidad del código. Adopta estos lineamientos y adapta el flujo a las necesidades de tu equipo para obtener resultados óptimos en cada lanzamiento.
Para más información, consulta la documentación oficial de Git en git-scm.com/doc o los recursos de desarrollo de WordPress en developer.wordpress.org.
|
Acepto donaciones de BAT's mediante el navegador Brave 🙂 |