Flujo de trabajo de Git con un tree de files diferente en cada twig

Tengo algunos repositorys git donde las sucursales no tienen el mismo tree de files. Ejemplo:

  • twig de desarrollo: carpetas src y dist en la raíz
  • twig en vivo: dist contenido en la raíz

Por ahora, el "mejor" flujo de trabajo que he encontrado es (cuando quiero "fusionar" la twig dev en la twig activa):

  • git checkout en vivo (de dev)
  • git checkout dev dist /
  • git reset HEAD *
  • copyr / pegar contenido de la carpeta dist en la raíz y eliminarlo
  • git agregar y comprometer

Como no soy un profesional, me preguntaba si hay una mejor manera de hacerlo.

Gracias de antemano por sus respuestas 🙂

Desde "copyr / pegar el contenido de la carpeta de distribución en la raíz y eliminarlo" me doy count de que no está fusionando los cambios de ambas partes sino simplemente actualizando a la nueva versión. Si eso es correcto,

git checkout live git read-tree -um HEAD: dev:dist # fast-forward current tree to dev's dist git rev-parse dev >.git/MERGE_HEAD # tell porcelain this is a merge git commit # record it 

lo haré. read-tree -m con dos treees produce una fusión de avance rápido de la primera a la segunda, y -u significa actualizar el tree de trabajo con los resultados. Vas del tree extraído al tree de distribución actual de la twig de desarrollo, y este es el resultado correcto de la fusión de dev , por lo que registrarlo como una combinación es correcto.

Pero como estás avanzando rápido, el resultado será el nuevo tree. Esta es una pregunta doble que se ha hecho muchas veces antes. Confieso que me gusta mejor mi respuesta:

 git commit-tree -p gh-pages -p master -m "" master:html \ | xargs git update-ref refs/heads/gh-pages 

(actualice los nombres a gusto), simplemente hace lo que necesita hacer directamente.

Puede rastrear la carpeta dist como un submodule git separado. En lugar de la twig de desarrollo, tendrías un repository diferente que lo incluye, y en vivo, necesitarías verificar solo el repository de datos.