Uso de Git Subtree para proyectos de WordPress

Ata tu cinturón, buena gente, este es un marco. Si aún no es un poco consciente del papel de GIT en su vida, hay grandes posibilidades de que este artículo no funcione para usted. Aunque me aseguraré de anclar nuestra conversación sobre el uso de Git Subtree en mi desarrollo de WordPress con un pequeño contexto de lo que es Git será mínimo. Este no es un tutorial de “git”, es un tutorial de “subárbol git” bastante explícito. No creo que Git Subtree sea adecuado para todos. Muchas veces no creo que sea adecuado para mí. Pero cuando ciertas realidades, la estructura organizativa y la historia de mi trabajo pidieron aprender a usarla para el desarrollo de WordPress, lo hice. Y así, mi objetivo aquí es explicar por qué se necesitaba Git Subtree para mi sistema de implementación de Git Push to Engine. Y debido a que esto está bastante cerca de un mapa de todas las partes del subtra, creo que esto puede ayudar a algunas personas que no son WordPress. ¡Vamos a eso!
¿Qué es Git?

En resumen, Git es un software de control de versiones. Lo que esto significa es que puedo usar Git para descubrir el historial de mi código, que era su condición en un día determinado, que era responsable de lo que cambia en una determinada línea de código, etc. Asumiremos que si comprende esto, también estará familiarizado con los modelos básicos de GIT. Que comprende que Git hace que reciba cambios en una copia local de un proyecto y Git Push se distribuye a otros GitHub, Bitbucket, Gitlab, etc. ¿Por qué utilizar el control de versiones distribuidas? Estrictamente e importante, Git no es solo un “software de control de versiones”, sino que es un software de control de versiones distribuidas. Tiene muchas ventajas sobre sus alternativas centralizadas, como la subversión. Al distribuirse, las personas pueden trabajar asíncronas y, en general, no tienen muchas complicaciones para resolver problemas simultáneos de cambio de archivo, llamados “conflictos conjuntos”. (No te preocupes, sin embargo, sucede. Y la mayoría de los desarrolladores les tienen miedo al menos. Incluso yo).
Además, siendo distribuido (y, en consecuencia, con ramas baratas), Git es una herramienta de implementación bastante buena.Por lo tanto, un trabajo maestro de producción simple simple funciona muy bien para poner todos los archivos para su sitio de WordPress incluso en los hosts que lo aceptan.A medida que entra en configuraciones más complejas, esto puede dañarse en los bordes.Pero para muchos sitios de WordPress es mucho más que adecuado.¿Por qué git en lugar de SVN o Mercurio?¿Por qué git?Me gusta tocar esto solo porque Git me molesta.Siento que el CLI de Git no está tan bien concebido como otros que jugué de vez en cuando, el mercurio y la subversión más relevantes.
Pero, para lo mejor, por lo mejor, por razones complejas (y simples), el mundo ha conquistado a su manera como un sistema de versiones controladas elegidas. El éxito de compañías como GitHub y Gitlab debe todo al éxito básico de GIT en comparación con sus rivales. Así que parcialmente usamos GIT porque el GIT es bueno. Parcialmente GIT, porque hacer cualquier otra cosa para el control de versiones hoy en día es extraño y difícil de justificar. 🤪 Subtree Git vs submódulos El principal problema para el cual usamos las subburbas GIT en este proyecto es la misma para la cual otras personas usan los “Sub -Mods” GIT “. En ambos casos, el problema es “Tengo código que quiero mantener en un almacén GIT separado. Pero quiero usar ese código en este proyecto “. Por cierto: el compositor es de hecho la mejor respuesta de PHP para este problema y que todavía no me siento seguro de mezclar mejor en los flujos de trabajo de WordPress. (Si tiene fuertes opiniones al respecto y desea escribir sobre ellas para WPShout, envíe un correo electrónico de “David” a esta área. Me gustaría publicar uno o dos artículos al respecto. 🤓) para reutilizar el código en -Un proyecto diferente, tenemos sub -mares y sub -módulos. Si uno de estos es más popular, en mi opinión, definitivamente son submódulos GIT. Estas son las diferencias básicas que entiendo:
Control de archivos: un subsass de Git dibuja todos los archivos en el sistema de archivos del depósito GIT de su proyecto. A Git Submodium no agrega los archivos del “Proyecto Infantil” al historial del proyecto.
Historia + conjunto: con los sub -tardes de Git, ha combinado explícitamente comités en los cambios en el almacén de distancia.En los submódulos, esos cambios se siguen con una modificación del archivo .gitmodules. ¿Cómo uso substree git, por lo que si los sub -mods git son más populares, por qué usan sub -tarfeos?En primer lugar: tengo un depósito gigante con todos los archivos no básicos en un sitio de WordPress.Lo que significa todos los complementos, todos los temas y, por lo tanto, todo en el contenido WP, pero los archivos multimedia.Y tengo un complemento de WordPress que mantenemos de forma independiente, porque está instalado en una variedad de otros sitios, aparte de este “monorepo”.Por lo tanto, uso un git sub-ass para seguir los cambios realizados en el complemento en mi “sitio web de WordPress” de almacén y poder cocinar esos cambios en la producción.
El motor WP permite la implementación de Git Push con subtras para empujar mi “subpositivo” al servidor de producción del motor WP, necesito que sus archivos se reflejen en el historiador GIT. Y para hacer eso, me vi obligado a usar Git Subtree. El uso más reciente de la submodula Git era con una vaga esperanza de poder usarlos en este proyecto. Pero luego me di cuenta de que mi preciosa funcionalidad Git Push (en el motor WP) requiere tener un cuello de subárbol. Entonces eso es lo que tengo ahora. Para configurar todo esto, en realidad hay tres pasos básicos: 1. Agregue su “sub-positivo” como control remoto Git primero, solo queremos evitar la necesidad de una URL larga GitHub/ Gitlab/ etc., así que definamos ese control remoto como una rama para obtener un nombre más corto. Si no es obvio, en todos los siguientes fragmentos, reemplazará a MyGitSubrepo con el verdadero “caracol” que desea usar para su proyecto, escrito en mayúsculas y puntuados como lo prefiera. Del mismo modo, personalizará mi ejemplo de URL GitHub. De todos modos, el pedido es:
Git remoto agregar -f mygitsubrepo https://github.com/davidbhayes/mygitsubrepo.git 2. Agregue el nuevo control remoto como sub -boil una vez que tengamos ese control remoto, debemos decirle a GIT dónde debemos poner nuestro subcarge archivos. Debido a que mi almacén es esencialmente “un sitio de WordPress” y mi subposición es un complemento de WordPress, el orden se parece a mí: git subtree add-prefijo wp-contemplate/plugins/mygitsubrepo mygitsubrepo maestro-shash lo que está sucediendo es ese git de git Luego tirará (y aplastará) la rama maestra de su almacén y hará una comisión en la rama actual en la que usted es del estado actual de esa rama en su sub-positivo (nuevamente, reemplace todos los mygitsubrepo con la rama corta real que Haga coincidir la forma en que piensa sobre su proyecto) 3. Para cambios futuros, haga cargo y apruebe el subcons de GIT anterior. Pero hay grandes posibilidades de haber seguido esta configuración, porque desea poder extraer cambios del sub-depositor Git con el tiempo utilizando el comando Git Subtree. Esto se hace prácticamente al actualizar la copia local del depósito desde la distancia con un cuello de búsqueda y luego (2) git subtrass en cambios, con un pedido muy similar al primer extracción:

git fetch mygitsubrepo git subtree pull-prefix wp-confontemps/plugins/mygitsubrepo mygitsubrepo maestro-squash porque casi nunca necesito/quiero ejecutar estos comandos de forma independiente, tengo una pequeña actualización-shopitsubrepo.sh en la cual puedo Ejecutarlo para convertir los dos pasos complejos en una sola línea. Pero esto de ninguna manera es necesario y una explicación más extensa de esto no está realmente en el alcance de este artículo. El Gotcha que me hace realizar mucho de todos los anteriores, generalmente funcionará lo suficientemente bien como para mantener sus subburbas GIT actualizadas para su complemento de WordPress. Sin embargo, hay un problema común que tengo: Git Subtree requiere que la copia del trabajo local sea “limpia”. A través de Clean, quiero decir que no tiene cambios sin obstáculos en el GIT. “Limpiar” su depósito GIT antes de actualizarse con el Paso 3 no es demasiado difícil. Principalmente, significa que el estado de GIT debería estar vacío. Y en el 90% del tiempo, para asegurarse de que antes de ejecutarlo funcione para mí. Si no, su pedido fallará con un árbol de trabajo tiene modificaciones. No se puede agregar. El árbol de trabajo tiene modificaciones. No se puede agregar. responder. A veces recibo ese error porque olvidé limpiar mi estado de git. Pero a veces lo entiendo incluso cuando lo hice. Y este es un error frustrante y confuso. Pero, como aprendí de una hermosa respuesta de StackOverflow, la solución aquí es un comando GIT que no sabía:

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *