El control de versiones es una de las cosas más importantes que puede agregar a su flujo de trabajo, sin importar qué tipo de trabajo de desarrollo de WordPress realice. Resuelve tantos problemas mientras te hace la vida mucho más fácil. El control de versiones no es solo el último botón de deshacer, perfecto para cualquiera que cometa errores, sino que se puede usar como una herramienta de respaldo e implementación. Más allá de eso, crea un registro de qué se cambió y cuándo, y facilita la colaboración.
El sistema de control de versiones más popular, por una buena razón, para el desarrollo de WordPress es Git. A principios de este año, Andy Leverenz cubrió los aspectos básicos del uso de Git para el control de versiones . Si nunca ha usado Git, le recomiendo leer ese artículo para tener una idea básica de qué es Git y cómo funciona. En este artículo, cubriré su uso con WordPress y algunas de las decisiones importantes que se deben tomar, como dónde alojar su código controlado por versión, qué colocar bajo control de versión y estrategias de implementación. También hablaré sobre las herramientas de la GUI de Git que facilitan su uso, incluida una opción que funciona desde dentro de WordPress.
En su mayor parte, si está haciendo algo más que instalar temas y complementos preconstruidos, creo que la respuesta es sí. Si está escribiendo cualquier código, incluso solo CSS en un tema secundario simple, debe usar el control de versiones. Puede que no parezca importante al principio, pero una vez que se le haya pedido que deshaga un cambio que hizo, vuelva a la forma en que estaban las cosas la semana pasada, apreciará tener un control de versiones en su lugar.
Donde Git realmente brilla es la capacidad de ver cada cambio individualmente. Esto es increíblemente importante cuando necesita deshacer un cambio sin perder todo lo demás que le gusta a usted o a su cliente que ha cambiado desde entonces.
El control de versiones es especialmente importante cuando se trabaja en equipo. Todos hemos estado involucrados en pesadillas en las que nos encontramos trabajando en la versión incorrecta de un archivo. Peor aún, ¿alguna vez ha realizado cambios en parte de su tema solo para perder los cambios cuando alguien más carga una versión del archivo sin su cambio en el servidor? El control de versiones ayuda a evitar estas situaciones.
¿Qué hacer con el control de versiones?
Si bien, en algunos casos, es posible que desee agregar todo, posiblemente incluido WordPress, bajo el control de versiones, pero la mayoría de las veces no es una gran idea. Tener todo su sitio bajo control de versiones complica la actualización de complementos y WordPress, y puede inflar el tamaño de su repositorio de Git sin ningún motivo.
Además, no olvide que Git es solo uno de los muchos sistemas de control de versiones para el código fuente. También está Mercurial, que no es muy común en el ecosistema de WordPress y Subversion. Subversion se utiliza para gestionar el núcleo de WordPress, así como los repositorios de plugins y temas de WordPress.org. Subversion es más difícil de usar, se usa menos para herramientas de implementación y tiene menos herramientas GUI, ninguna de las cuales es gratuita y, en mi opinión, muy buena.
WordPress está lleno de código que nunca editarías. La mayoría de las veces eso incluye sus complementos y el propio WordPress. Existen mejores herramientas para administrar el código de otras personas, como WordPress o Composer.
Una buena regla general es que solo debe tener el código que está escribiendo bajo el control de versiones. Para mucha gente esto significa su tema hijo. Está utilizando un tema secundario , no modificando su tema directamente, ¿verdad? Si todo su código personalizado está en su tema secundario, entonces puede dejar que WordPress administre todo lo demás, mientras que el tema secundario está controlado por la versión.
Una razón para poner todo su sitio bajo el control de versiones de Git es que le permite usar Git como herramienta de implementación. Algunas personas usan git para implementar su sitio en su servidor. Esto se puede lograr agregando el servidor en vivo como un control remoto de Git y enviando los cambios directamente a él, o extrayendo los cambios de su host de Git al servidor en vivo. También hay herramientas de implementación automatizadas, como Beanstalk , que se extraen de un repositorio de Git.
¿Debe utilizar una herramienta GUI?
Git se puede operar completamente desde la línea de comando, pero no es necesario hacerlo. Hay excelentes herramientas GUI disponibles. Las herramientas de la GUI de Git no solo facilitan el uso de Git, sino que también lo ayudan a visualizar el estado de su árbol de Git y sus fusiones. Más importante aún, lo ayudan a administrar la configuración de controles remotos, empujar y tirar del tema, así como también manejar conflictos de combinación.
Hay varias herramientas GUI gratuitas a considerar, incluida la aplicación de GitHub, SourceTree y Git Tower y el código abierto Git Cola . La aplicación de GithHub es excelente para los principiantes de Git, ya que es la más sencilla de usar, pero también es la que tiene menos funciones. Personalmente, uso SourceTree ya que, en mi opinión, tiene las mejores características y visualización de árbol de Git. Más importante aún, funciona muy bien con GitHub y BitBucket , los dos hosts de Git que uso. Además, es gratis.
La integración con el host de Git que usa es probablemente lo más importante que debe buscar en una herramienta de GUI de Git. Una de las cosas más difíciles de configurar manualmente para Git son las claves SSH que le permiten enviar a cualquier repositorio o extraer de cualquier repositorio privado al que debería tener acceso. Usar una herramienta GUI de Git que maneje la autenticación por usted es una manera maravillosa de hacer su vida más fácil.
¿Qué host de Git debería usar?
Si bien técnicamente no necesita tener un servidor remoto que aloje su repositorio de Git, casi siempre es necesario. Empujar a un host de Git que no está en su propia computadora o servidor hace dos cosas importantes. Esos están creando una copia de seguridad de su código y facilitando que varias personas contribuyan a su código de versión controlada.
Existen muchas opciones para el alojamiento de Git, incluido su propio servidor, si su proveedor de alojamiento lo permite. Si bien GitHub y BitBucket son los más populares en el mundo de WordPress, GitLab y Gitorious son otras opciones a considerar. Todos ellos ofrecen una combinación diferente de servicios adicionales más allá de GitHosting, incluidos rastreadores de problemas y wikis, así como una interfaz sencilla para administrar quién tiene acceso de lectura, escritura y administrador al repositorio.
Dado que GitHub es la red de alojamiento de Git más popular, si está desarrollando un complemento o un tema para que otros lo usen, realmente debería tenerlo en GitHub para que otras personas puedan contribuir con código, informar problemas o probar sus últimos cambios antes de que sean oficialmente publicado en WordPress.org. Si usa Git para un código que tiene un solo propósito, como un tema secundario para un sitio específico, GitHub aún funciona, pero si desea que su código sea privado, necesitará un plan pago.
Por otro lado, BitBucket, que no es una gran opción para proyectos públicos, ofrece repositorios privados gratuitos ilimitados. Eso es perfecto cuando su repositorio contiene información confidencial, como un archivo wp-config.php , código propietario o temas premium con licencia GPL o complementos que no desea distribuir de forma gratuita por respeto a los autores.
Otra razón por la que podría querer elegir BitBucket es que tiene una excelente integración con otras herramientas de la misma compañía. Estas herramientas incluyen Jira , Confluence y HipChat , la popular herramienta de chat para el desarrollo de software grupal.
¿Qué pasa con la base de datos?
Nada de lo que he discutido hasta ahora cubre la base de datos de WordPress. El control de versiones para bases de datos es un tema totalmente diferente y un desafío técnico muy serio. Además, dado que WordPress tiene una excelente función de revisión de publicaciones , es decir, control de versiones para el contenido de las publicaciones, probablemente no necesite un control de versiones separado para su base de datos. Esto es especialmente cierto porque es muy difícil hacer lo correcto.
Dicho esto, hay una buena solución de WordPress para esto, y ese es el complemento Revisr . Revisr es esencialmente una herramienta GUI de Git dentro del administrador de WordPress. Tiene muchas características excelentes y le recomiendo que lo revise y considere usarlo como parte de su flujo de trabajo de Git.
Una cosa que hace Revisr que es realmente especial y única, es que cada vez que realiza una confirmación, crea una copia de seguridad de su base de datos y la agrega a la confirmación. Esto significa que cuando revierte a una confirmación anterior, no solo revertirá su código, sino que también tendrá la opción de revertir la base de datos a donde estaba entonces. Puede que no sea algo que siempre quieras, pero hay momentos en los que podría ser un salvavidas.
¿Qué otra cosa?
Git y el control de versiones son temas muy importantes. Le recomiendo encarecidamente que no solo use Git, sino que también haga un plan sobre cómo va a usar Git y lo mantenga. Si está trabajando en equipo, tener un plan y el compromiso de cumplirlo es aún más importante.
Una de las mejores partes de Git es que te permite experimentar sabiendo que puedes descartar fácilmente tus cambios sin confirmarlos o revertir las confirmaciones más adelante. Más importante aún, los sistemas de control de versiones hacen posible que personas de todo el mundo trabajen juntas para contribuir sin esfuerzo a los mismos proyectos. Para mí, esa es una de las mejores partes de ser un desarrollador de WordPress.
Imagen en miniatura del artículo de Jane Kelly / shutterstock.com