Usar Git con DreamPress

Generalidades

Es un deseo común personalizar un sitio de WordPress a tu propio estilo personal. Sin embargo, un problema importante con el código de tema personalizado es que cuando el desarrollador actualiza el tema, tus personalizaciones se anulan. Una solución a este problema es crear un tema secundario con el control de versiones de Git.

La creación de un tema secundario generalmente requiere el uso de algo como las herramientas de desarrollo del navegador de Google para averiguar qué cambios debe realizar en la hoja de estilo CSS del tema. También es posible que debas realizar cambios en uno o más de los archivos PHP para actualizar plantillas específicas de WordPress.

Hacer un seguimiento de múltiples cambios como este puede volverse rápidamente tedioso y confuso. Además, ¿cómo puedes probar nuevos cambios sin perder los cambios actuales y cómo volver a un cambio que realizó anteriormente si descubre que cometió un error? Una vez más, la mejor solución es usar el control de versiones de Git con DreamPress.

¿Qué es Git?

Git es un sistema de control de versiones que le permite realizar un seguimiento de cada cambio que realice en tu sitio. Es ideal para crear y mantener temas, complementos y cualquier personalización de tu sitio web de WordPress más allá de los que puede hacer en el tablero. Como herramienta de control de versiones, Git te permite tomar instantáneas de tu código para que puedas recuperar una copia de seguridad en cualquier momento. Git te permite crear una "rama" para agregar una nueva característica, corregir un error o incluso experimentar con nuevos cambios sin preocuparte por estropear la versión actual.

En el pasado, usaba FTP/SFTP para actualizar tu sitio web. Sin embargo, un problema importante con estos protocolos es que no puedes volver a una versión anterior de tus personalizaciones en casos como cuando un cambio interrumpe tu sitio. Tampoco puedes revisar una versión anterior para ver qué cambió. Estos problemas se resuelven usando Git.

Git se usa comúnmente con SSH y un terminal al crear repositorios remotos. Sin embargo, también hay algunas buenas aplicaciones GUI Git que se pueden usar. Dos buenas son SourceTree y Tower ($$).

¿Para qué se puede usar Git?

El uso de Git para temas o complementos personalizados te permite compartirlos entre sitios web o con otros usuarios. Si eliges hacer esto, se recomienda encarecidamente colocar cada proyecto (tema o complemento) en su propio repositorio. Hacerlo les permitirá a ti y a otros seguir fácilmente su trabajo personalizado.

¿Cuándo no se debe usar Git?

No se recomienda usar Git como herramienta de respaldo de WordPress. Por ejemplo, no es necesario poner tu instancia de WordPress bajo control de versiones. Eso ya lo hicieron los desarrolladores principales de WordPress. Además, si tuvieras todo tu sitio bajo el control de versión de Git, todo se sobrescribiría durante una actualización automática de WordPress. Más bien, piensa en Git como una herramienta para administrar sus personalizaciones o tu propio tema y desarrollo de complementos.

Usar Git para el control de versiones de la base de datos también es difícil y no se recomienda. WordPress ya maneja el control de versiones para publicaciones y páginas, por lo que esto es innecesario.

Diferentes formas de usar Git

Hay algunos flujos de trabajo diferentes que se pueden usar con Git y WordPress. Lo que funciona mejor depende de si se está desarrollando conjuntamente con otros o no, así como de su preferencia personal.

  1. Local only — Solo usa Git localmente (en tu computadora) y continúa usando SFTP para actualizar tu servidor con cambios.
  2. Local and web server — Crea un repositorio Git tanto localmente (en tu computadora) como en su servidor web. Envíe los cambios de su instancia local a la instancia de tu servidor que se copia en tu tema de WordPress o en el directorio de complementos.
  3. Local, public Git host and web server — Esta configuración es ideal cuando se realiza un desarrollo conjunto con otros. Puedes usar GitHub o Bitbucket para alojar tu desarrollo colaborativo para actualizar y compartir cambios de código. Y cada vez que elijas, puedes enviar actualizaciones desde el host Git a tu servidor web. GitHub es mejor para el código que se compartirá públicamente mientras Bitbucket es mejor para un repositorio privado ya que es gratis. (GitHub cobra por repositorios privados.)

Cómo usar Git con un tema secundario en DreamPress

DreamPress ha incorporado soporte para Git. Se puede usar para el segundo o tercer tipo de flujo de trabajo que se muestra arriba. El siguiente ejemplo analiza el segundo método de flujo de trabajo: un repositorio Git local y uno en su servidor DreamPress que mantiene sincronizado.

Probablemente, el caso de uso más común para usar Git es crear un tema secundario. Muy a menudo, deseas realizar cambios en un tema y no sobrescribir tus cambios cuando necesitas actualizar el tema.

Los siguientes pasos usan SSH para ejecutar comandos de shell Git. Ve los siguientes artículos para obtener una descripción general sobre cómo habilitar SSH:

También debeS tener un sitio de DreamPress en funcionamiento. Ve el siguiente enlace para saber cómo configurar un sitio DreamPress:

Paso 1 — Instalar Git en tu computadora

Git debe estar instalado en tu computadora para que pueda ejecutar los comandos de git. Hay un gran artículo en la documentación en línea de Git eso explica cómo hacer eso para Windows, Mac OS y Linux. Ten en cuenta que Git ahora estás instalado en Mac OS de forma predeterminada si tienes la última versión. Puedes verificar si está instalado con este comando en la aplicación de terminal:

[computer]$ git --version

Paso 2 — Crear un usuario de shell en el panel DreamHost

Configura un usuario shell en el panel DreamHost si aún no lo has hecho. También puedes cambiar el usuario actual de DreamPress de SFTP a Shell en la página Manage Users. Una vez que hayas hecho eso, escribe tu nombre de usuario, contraseña y servidor de shell. Para DreamPress, tu nombre de usuario y servidor se ven así:

Shell username:  wp_ab1cde
Server:  wp_123456.dreamhostps.com

Paso 3 — Configura una clave SSH en tu computadora

Esto te permite conectarte automáticamente a su servidor DreamPress y permite que los comandos de Git funcionen de forma remota. Esto varía un poco entre Windows, Mac y Linux, así que consulta este artículo de ayuda:

Asegúrate de copiar su frase de contraseña en un lugar seguro. Es posible que lo necesites (como para el llavero Mac OS).

Ten en cuenta la referencia a username@server.dreamhost.com en el artículo de ayuda. Se ves así usando el nombre de usuario y el servidor de shell de ejemplo de este artículo arriba:

wp_ab1cde@wp_123456.dreamhostps.com

Paso 4 — Elige tu terminal favorita

Windows no incluye un terminal, por lo que debes elegir uno como PuTTY, SuperPutty, o MobaXterm. Tanto Mac OS como Linux incluyen un terminal, pero hay otras opciones disponibles. Para Mac OS, una buena sugerencia es iTerm2.

Abre tu terminal en este punto, que se utiliza de aquí en adelante.

Paso 5 — Inicia sesión en tu servidor

Inicia sesión en tu servidor usando SSH. Esto te lleva directamente a la raíz de usuario de su shell. Usando el usuario y el servidor de shell de muestra, parece que:

[server]$ ssh wp_ab1cde@wp_123456.dreamhostps.com

La primera vez que haga esto, debes aceptar su servidor como un host válido. Esta información se guarda en un archivo host conocido en tu computadora.

Paso 6 — Configura tu servidor Git repo

No es necesario que estés en el mismo directorio que el tema secundario, pero asegúrate de recordar dónde crea este directorio. Este ejemplo crea un directorio/git bajo su nombre de usuario, fuera del directorio del sitio web. Ejecuta los siguientes comandos de Linux para crear el directorio e inicializar el repositorio en tu servidor web.

  1. Asegúrate de estar en el directorio de tu usuario ejecutando pwd:
    [server]$ pwd
    /home/username/
  2. Crea el directorio en el que se almacenará el repositorio. Puedes nombrarlo como quieras. En este ejemplo, se crean dos directorios. /git y /projectname:
    [server]$ mkdir -p git/projectname 
  3. Cambia tu directorio actual al directorio recién creado:
    [server]$ cd git/projectname
  4. Inicializa el repositorio:
    [server]$ git init --bare
    Initialized empty Git repository in /home/username/git/projectname/
  5. Asegúrate de crear un directorio para cada proyecto único. Esto te ayuda a realizar un seguimiento de ellos en el futuro.

Paso 7 — Crea un archivo para copiar actualizaciones

Este paso crea un archivo para copiar actualizaciones desde el repositorio de Git de tu servidor al directorio de temas secundarios. Este ejemplo utiliza un programa editor de texto llamado nano. Ve el artículo 'Crear y editar un archivo a través de SSH' para obtener más información sobre cómo editar un archivo.

  1. Asegúrate de estar en tu directorio/git/projectname.
  2. Abre 'nano' y crea un archivo llamado post-recepción:
    [server]$ nano hooks/post-receive
  3. Agrega este código al archivo, que le dice dónde empujar estos cambios. Esto debe apuntar a tu directorio de tema hijo.

    En este ejemplo, cambie el nombre de usuario de shell a su usuario real de shell, cambie example.com a su sitio web y cambie el directorio child-theme por el nombre de tu directorio child-theme.

    #!/bin/sh
    GIT_WORK_TREE=/home/shell-username/example.com/wp-content/themes/child-theme-directory git checkout -f
  4. Guarda y cierra tu archivo para volver a tu shell.
  5. Otorga al archivo derechos de ejecución en la línea de comando del terminal:
    [server]$ chmod +x hooks/post-receive

Paso 8 — Crea un tema hijo

Crea un tema infantil hijo. Usa el siguiente artículo para obtener instrucciones paso a paso:

Paso 9 — Descarga los archivos de tu sitio web a tu computadora

Debes tener todos los archivos de tu sitio DreamPress en tu computadora local. Si no, descárgalos a través de SFTP.

Paso 10 — Crea tu repositorio git local en tu computadora

  1. Asegúrate de estar en el directorio de temas de tu tema hijo:
    [server]$ cd $HOME/example.com/wp-content/themes/child-theme-directory
  2. Ejecuta lo siguiente para inicializarlo:
    [server]$ git init

Paso 11 — Personaliza tu tema hijo local en tu computadora

Este paso no está cubierto en este artículo. Mira esta publicación de blog sobre cómo crear un tema secundario:

Paso 12 — Configura la conexión a tu servidor remoto

Esto se hace mediante el uso de un comando remoto de git en el directorio de tema secundario.

  1. Asegúrate de estar en el directorio de temas secundarios:
    [server]$ git remote add myserver ssh://username@server.example.com/~/git/projectname

    Puedes usar cualquier nombre de servidor que desee en lugar de "myserver". Usando el nombre de usuario y el servidor de ejemplo, el comando es:

    [server]$ git remote add myserver ssh://wp_ab1cde@wp_123456.dreamhostps.com/~/git/projectname
  2. Ejecuta lo siguiente para ver si se agregó correctamente:
    [server]$ git remote -v

Paso 13 — Guarda tus cambios

Ahora que has personalizado tu tema secundario, debes guardar los cambios en tu repositorio git local.

  1. Agrega tus cambios a tu índice git local:
    [server]$ git add .
  2. Confirma estos cambios, que registran los cambios en el repositorio. Incluye un breve mensaje en el comando de confirmación, que es una nota rápida para recordarte lo que está confirmando. Por ejemplo, podría ser "primer compromiso del tema hijo":
    [server]$ git commit -m "message about the commit"
  3. Verifica el estado de tu repositorio git ejecutando lo siguiente. Puedes consultarlo en cualquier momento:
    [server]$ git status

Paso 14 — Empuja tus cambios al servidor de tu sitio web

Ahora que se establece la conexión entre tus instancias git locales y del servidor, puedes enviar tus cambios al repositorio de tu servidor y a tu sitio de WordPress:

  1. En el directorio de temas secundarios, ejecuta el siguiente comando solo una vez:
    [server]$ git push myserver +master:refs/heads/master
    [server]$ git push --set-upstream myserver master
    Branch master set up to track remote branch master from myserver
  2. Cada vez que crees una nueva instantánea en tu repositorio de git local, empújala a su servidor simplemente con este comando:
    [server]$ git push myserver

¡Eso es! Una vez que hayas configurado esto, es simple mantener estos dos repositorios sincronizados. También tienes todo el desarrollo de tu tema hijo bajo control de versiones.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?