¿Cómo puedo asignar un directory específico a una twig diferente de una que funcione en git?

Tengo un website estático simple, basado en HTML 5 y todo está en un repository de Github. La estructura del proyecto es algo como esto

build css img js publish # this directory isn't in source control! ... index.html & other files 

Básicamente, lo que hago es ejecutar una secuencia de commands de compilation (a partir de una plantilla repetitiva de HTML 5 ) que comstack todo el HTML / CSS / JS en el directory de publish , que no está en el repository de git .

Ahora lo que quiero hacer es usar las páginas de GitHub y poder usar el resultado del directory de publish como una página de GitHub.

La forma en que funcionan las páginas de GitHub es que creas una twig limpia separada llamada gh-pages , que contendrá el contenido final. Lo que quiero hacer es poder, bajo demanda, comprometer el directory de publish actual en la twig gh-pages , pero también quiero mantenerlo en el file principal .gitignore para que no se .gitignore en el repository de origen.

Quiero hacer esto para get una vista previa del estado actual del proyecto.

en resumen: necesito asignar un directory a una twig separada, por lo que su raíz será la misma que el contenido de ese único directory. publish/css se convertirá en css en la twig gh-pages

Como .gitignore tiene una .gitignore , simplemente no coloque el directory publish/ en el file .gitignore la twig gh-pages . Entonces, puedes hacer algo como esto:

 ORIG_HEAD="$(git name-rev --name-only HEAD)" git checkout gh-pages && mv publish/* . && git commit -am "automatic update" && git checkout "$ORIG_HEAD" 

Se pone complicado ya que quiere hacer cosas en el directory raíz en lugar de en un subdirectory. Otra opción sería simplemente mantener una copy separada del mismo repository en un directory diferente, que siempre esté en la twig gh-pages . Podría hacer que su script simplemente escriba los files allí en lugar de publish/ y luego simplemente confirmar en ese clon.