Este artículo no pretende ser un tutorial completo sobre git para WordPress, pero sí queremos iniciar una serie de artículos en los que compartir nuestra manera de usar git para desarrollar sitios web con WordPress, por si te sirve para mejorar en tu trabajo diario, o por si te apetece comentarnos algo para mejorar este enfoque.

Introducción a git y control de versiones para desarrolladores de WordPress

git wordpressSi has llegado a este artículo, ya habrás oído hablar de git y en la Web encontrarás mejores sitios donde obtener información sobre aspectos básicos e iniciación al control de versiones, como este libro Aprende GIT o esta charla Git desde cero.

Para Trevenque, es importante usar un sistema de control de versiones en el desarrollo de sitios web con WordPress principalmente por estas razones:

  • Trabajo en equipo.
  • Gestión de versiones, pruebas y experimentos.
  • Recuperación de versiones anteriores.

Trabajo en equipo

trabajo colaborativo

En los sitios web que desarrollamos, es habitual que varias personas trabajemos en el mismo proyecto, ya sea por parte de diseño, marketing online, desarrollo web o incluso por parte del cliente. Un sistema de control de versiones como git nos facilita la colaboración porque varias personas podemos trabajar en el mismo proyecto simultáneamente mediante el uso de ramas y una metodología como git flow.

Gestión de versiones, pruebas y experimentos

git versiones y experimentos

Durante el desarrollo de un proyecto web, tenemos que crear o avanzar en nuevas características (incluso de forma paralela); a lo largo de la vida del sitio web, a veces tenemos que solucionar problemas sin interrumpir el funcionamiento de la web en producción. El uso de ramas y el etiquetado de versiones específicas del proyecto permite un desarrollo más organizado y facilita la gestión y el seguimiento de los diferentes estados del sitio web.

Esto, además, da cierta libertad para probar plugins u otras funcionalidades a medida, para experimentar con algunos cambios importantes, sin romper el sitio en producción. Si el resultado de las pruebas te convence, puedes fusionar la rama de pruebas en la rama principal; si no, puedes descartar de forma segura la rama en la que habías hecho las pruebas (sobre la base de datos, hablamos luego).

Recuperación de versiones anteriores

git recuperar versiones anteriores

Un error, un problema inesperado o un ataque malicioso a nuestro sitio web pueden requerir que volvamos a una versión anterior del sitio web. Mediante el control de versiones con git, podemos revertir el código y restaurar versiones anteriores de los ficheros con unos pocos comandos, lo cual es especialmente útil en situaciones de emergencia.

Configuración inicial de git para un proyecto de WordPress

La estructura de ficheros habitual en nuestros proyectos web almacena los ficheros de WordPress dentro de un directorio específico, así evitamos la posible exposición de datos innecesarios. Un ejemplo de estructura de carpetas sería este:

bbdd  /** <-- scripts y copias de la base de datos */
server  /** <-- scripts y configuraciones específicas del servidor web */
www  /** <-- ficheros de WordPress */
.gitignore
CHANGELOG.md
README.md
wp-cli.yml

Configurar un repositorio git en nuestros proyectos WordPress consta de varios pasos:

  1. Inicializar el repositorio
  2. Agregar archivos
  3. Realizar el primer commit
  4. Conectar con repositorio remoto
  5. Realizar el primer push
  6. Configurar git flow

Las instrucciones a continuación se indican para trabajar en línea de comandos (terminal) con la estructura de directorios y ficheros vista anteriormente. Además, partimos de que ya tienes instalado tanto git como la extensión git flow en tu sistema.

1. Inicializar el repositorio git

– Abre la terminal o línea de comandos en tu sistema.

– Navega hasta el directorio raíz del proyecto WordPress. OJO: no al directorio raíz de los ficheros de WordPress, sino al directorio raíz del proyecto. Por ejemplo, si el proyecto se encuentra en la carpeta «miwp», los ficheros de WordPress estarán alojados en la carpeta miwp/www. Utiliza el siguiente comando para acceder a esa carpeta:

cd /ruta/al/proyecto/miwp

– Una vez en el directorio del proyecto, ejecuta el siguiente comando para inicializar el repositorio git:

git init

– En este momento, ya existe una primera rama en el repositorio que puede llamarse main o master, depende de la versión de git y de su configuración. A partir de ahora, puedes utilizar el comando git status en cualquier momento para ver el estado de los ficheros en tu repositorio git local.

2. Agregar archivos al repositorio

– En este punto, suponemos que ya hemos agregado al proyecto los ficheros de WordPress y algún otro, como el README.md o el imprescindible (para Trevenque, al menos) .gitignore.

– Utiliza el siguiente comando para agregar todos los archivos y directorios del proyecto al repositorio git:

git add .

– Recuerda que todos los comandos de git debemos ejecutarlos dentro del directorio del proyecto.

 

3. Realizar el primer commit

– Para confirmar los cambios realizados hasta ahora en el repositorio git, realiza el primer commit utilizando un comando similar a este:

git commit -m "Primer commit"

– Puedes reemplazar «Primer commit» con un mensaje más descriptivo. También puedes agregar el parámetro –author “Mi nombre <micorreo@dominio.com>» para que git registre quién hizo el commit (en caso de que no tengas estos datos ya configurados en git).

 

4. Conectar con repositorio remoto

– El trabajo hasta ahora tenía lugar en tu dispositivo local, pero al trabajar en equipo conviene utilizar un repositorio remoto al cual nos conectamos las personas que trabajamos en el mismo proyecto.

– Para conectar tu repositorio local con un repositorio remoto, supondremos que éste ya existe y está alojado en GitHub, GitLab, BitBucket o cualquier otra plataforma de repositorios git a la que tengas acceso. En nuestro caso, la conexión sería algo así:

git remote add origin <URI-repositorio-remoto>

– El parámetro “origin” indica el nombre que le damos al repositorio remoto. Algunos equipos prefieren utilizar “remote”, por ejemplo.

– El parámetro “<URI-repositorio-remoto>” puede ser del tipo https://git.dominio.com/proyectos/miwp.git o git://git.dominio.com/proyectos.git o de otra forma, lo cual depende de las credenciales de acceso que dispongas para esa plataforma remota de git.

 

5. Realizar el primer push

– Este primer push, además de subir el repositorio local al remoto, indica que la rama local actual se conectará siempre a la rama del mismo nombre en el repositorio remoto:

git push --set-upstream origin main

– El parámetro “origin” indica el nombre del repositorio remoto que configuramos en el paso anterior.

– El parámetro “main” es el nombre de la rama de trabajo actual, que deseas subir al repositorio remoto.

 

6. Configurar git flow

– En Trevenque nos sentimos cómodos con la metodología git flow y por ello inicializamos esta extensión para trabajar con nuestros repositorios. Ejecuta el siguiente comando para inicializar la extensión git flow en el repositorio actual:

git flow init

– Responde a cada pregunta que te hace este comando, con especial atención a los nombres de las ramas de producción (habitualmente, main o master) y desarrollo (habitualmente, development o develop). En nuestro caso, el resto de las ramas (supporting branch) las dejamos con los nombres predeterminados.

 

¡Listo! En este punto, ya está todo preparado para trabajar en tu proyecto WordPress usando git como sistema de control de versiones.

Aunque trabajes individualmente, aunque no tengas una plataforma remota a la que conectar tu repositorio, siempre recomendamos el uso del control de versiones porque ayuda a organizarte mejor en tus proyectos y en tu día a día.

 

En próximos artículos, hablaremos de más aspectos del uso de git en proyectos WordPress:

  • Cómo trabajamos en equipo basándonos en git flow.
  • Cuál sería el .gitignore ideal para proyectos WordPress.
  • Cómo gestionar los cambios en base de datos.
  • Y mucho más… si podemos 😊

 


Créditos: