¿Cómo sacar una twig de git sin echarle un vistazo?

Tengo 2 sucursales en un repository (versión + dev) con las que trabajo regularmente. Sin embargo, al cambiar de una twig a otra desencadena una construcción larga en mi proyecto (estoy hablando de ~ 30 minutos), así que prefiero evitar cambiar entre ellas. Para trabajar en ambos creé 2 copys de mi repository y eso funciona bien.

Sin embargo, cuando deseo fusionar los cambios, necesito activar la twig de publicación por un momento para extraer los cambios. Luego puedo volver a desarrollar, fusionar y comprometerme. Sin embargo, como escribí arriba, este cambio provocará una reconstrucción larga. ¿Hay alguna otra manera de tirar de una twig sin hacerla activa primero?

Si desea pasar una twig en un repository remoto a su twig actual, no necesita cambiar.

Si lo entiendo correctamente, tiene un repo con la release desprotegida, y otro con dev comprobado, en el que está trabajando. Cuando haya terminado con algo en dev , desea fusionarlo en release , sin un checkout de release .

Supongo que tiene controles remotos configurados en ambos repositorys, para que ambos puedan referirse entre sí.

cd a su repository de release . Obtenga los cambios del dev repos:

 git fetch <dev_remote> <branch> 

Ahora tiene una twig de desarrollo actualizada en su informe de release , aunque no necesitó verificarlo. Sin embargo, tenga en count que el nombre de la twig de desarrollo actualizada contiene: el nombre del control remoto , una barra inclinada y luego el nombre de la twig . Es una twig remota, se muestra en dos colors en gitk y como remotes/<remote_name>/<branch> con la git branch -a .

Combina la twig actualizada con tu sucursal de release local:

 git merge <dev_remote>/<branch> 

Y ahí lo tienes. Sin checkout , pero su twig de release en su repository de release ha fusionado el contenido de dev .

Esto es por el principio. Ahora puede hacer esto en un solo paso:

 cd <release_repo> # you are on the release branch git pull <dev_remote> <branch_name_in_dev_remote> 

Su twig en dev_remote searchá y se fusionará en su twig actualmente desprotegida en el repository de release .


Del mismo modo, querrás actualizar tu dev repo con la nueva combinación de commit en el release :

 cd <dev_repo> # you are on the dev branch git pull <release_remote> <branch_name_to_pull> 

Puede fetch cambios remotos. Esto downloadá todos los cambios del repository remoto pero no hará nada más. Pero si deseas merge twig A en la twig B no puedes hacer eso sin antes echar un vistazo a B

git pull no es más que una git fetch combinada con una git merge

Probablemente el enfoque más fácil es tener una carpeta propia para cada twig en la que desee trabajar. Entonces simplemente puede combinar de una carpeta a la otra. Esto efectivamente deshabilita la idea base de git para cambiar las twigs en el lugar (lo que creo que es una tontería de todos modos, al less para proyectos con un tamaño no trivial y muchas diferencias entre twigs).