A menudo trabajo en varias funciones simultáneamente, lo que me lleva a guardar cambios y olvidarme de ellos mientras cambio a otras tareas. Intenté usar ganchos de git y alias de terminal como recordatorios, pero eran demasiado complicados o fáciles de ignorar. Así que tuve que encontrar una solución mejor.
Este artículo se publicó originalmente en mi blog hace más de un año, pero sigo volviendo a él. Volver a compartirlo con el mundo :)
Git almacena información como una lista de instantáneas. Una instantánea es una versión almacenada del repositorio en un momento determinado. Cada confirmación representa una instantánea en el mundo de git.
El árbol de trabajo es un pago único de una versión del proyecto. Estos archivos se extraen de la base de datos comprimida en el directorio Git y se colocan en el disco para que usted pueda usarlos o modificarlos. Este es el lugar en el que haces tu trabajo antes de poner en escena y comprometerte.
Git Worktrees es una forma de administrar múltiples árboles de trabajo de git al mismo tiempo sin la molestia de git stash. Nos permiten trabajar en ramas como subdirectorios de un repositorio, aliviando por completo la molestia de ocultar cambios cuando se requiere un cambio urgente y no relacionado.
El módulo worktree le permite verificar múltiples versiones del proyecto en subdirectorios separados en el mismo directorio raíz del repositorio. Tomemos como ejemplo el siguiente diagrama sobre el enfoque tradicional:
En este ejemplo tengo dos cambios ocultos (que podrían ser cientos de líneas de código) y 3 ramas, feature-1, feature-2 y fix -1. Para cuando termino de trabajar en la rama fix-1 y la empujo, mi cerebro habrá saltado a la siguiente tarea y se habrá olvidado por completo de las funciones anteriores hasta que las recuerde nuevamente.
En cambio, con los árboles de trabajo, se ve así:
Con los árboles de trabajo, la estructura de directorios contiene cada árbol de trabajo (rama) en un directorio separado. Esto me permite cambiar sin problemas de una rama a otra simplemente cambiando el directorio en el que estoy trabajando actualmente. Mi flujo de trabajo habitual con este enfoque consiste en lo siguiente:
Cuando quiero cambiar de un árbol de trabajo a otro, todo lo que tengo que hacer es crear un árbol de trabajo diferente siguiendo los mismos pasos si aún no lo tengo creado, o simplemente abrir un directorio diferente con VSCode y comenzar a piratear. inmediatamente.
Crear un árbol de trabajo es tan simple como ejecutar git worktree add nombre-directorio nombre-rama para las ramas existentes o git worktree add nombre-directorio -b nombre-rama para crear una nueva rama.
Una vez que haya terminado de trabajar en una rama, puede eliminar de forma segura el árbol de trabajo para dejar de contaminar la estructura de su directorio. Simplemente ejecute git worktree remove nombre-directorio. Esto no elimina las ramas subyacentes, por lo que puedes volver a consultarlas de forma segura más tarde.
Los árboles de trabajo son extracciones de ramas del repositorio, por lo tanto, los archivos sin seguimiento no se copian. Los archivos como .env no se copiarán, así que asegúrese de copiarlos después de crear un árbol de trabajo e instalar las dependencias, si existen.
Tenga en cuenta también que los directorios creados para los árboles de trabajo aparecerán en los registros de estado de git cuando se ejecuten en el directorio del repositorio raíz. Sin embargo, estas trampas no son nada para mí en comparación con olvidar horas de trabajo.
¡Gracias por leer! ¡Puedes leer más en mi blog y apoyar mi trabajo en los patrocinadores de GitHub!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3