2012-05-14 15 views
16

Desarrollando en github, suelo mantener un subdirectorio html/ o _site/ en mi rama principal donde genero documentación basada en web para el proyecto. Me gustaría cambiar a mi rama gh-pages y pull solo el contenido de este directorio html en la raíz de la rama gh-pages, por lo que se mostrará como un buen sitio web a través de github (que automáticamente muestra html en gh-pages en username.github.com/repositoryname) ¿Cuál es el mejor flujo de trabajo para hacer esto?git: actualiza el directorio raíz de una rama desde el subdirectorio de otra

Si aún no tengo configurada la rama gh-pages, puedo bifurcar, borrar la rama y copiar en el contenido del directorio html y listo, tengo el sitio listo. Pero no estoy seguro de cuál es la mejor manera de actualizar la rama gh-pages.

git branch gh-pages 
git checkout gh-pages 
# Remove files I don't need from the gh-pages branch 
rm -rf data/ man/ R/ README.md NEWS NAMESPACE DESCRIPTION demo/ 
# move documentation to the root 
mv inst/doc/html/* . 
# remove the rest 
rm -rf inst/ 
git add * 
git commit -a -m "gh-pages documentation" 
git push origin gh-pages 
git checkout master 

¿Qué debo hacer para actualizar la rama gh-pages más adelante? Parece que esto podría implicar subtree merging pero no estoy seguro.

Respuesta

13

Para iniciar su GH-páginas rama:

true | git mktree | xargs git commit-tree | xargs git branch gh-pages 

en busca de cualquier cosa que desee en ella, por ejemplo el directorio html de la rama principal, lectura árbol y comprometerse:

git checkout gh-pages 
git read-tree master:html 
git commit -m'gh-pages documentation' 
git push origin gh-pages 
git checkout master 

y ya terminaste

Late además: hay una secuencia más corta para añadir a la rama de GH páginas:

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

que no requiere lavado del árbol de trabajo actual

+0

¿Sería una rama huérfano ser igualmente apropiado en este caso? (Http://stackoverflow.com/questions/7646487/starting-from-scratch-for-v2-0-should-i-keep-using-the-existing-git-repo-or-sta/7648343#7648343) – VonC

+0

@VonC depende de lo que quieras. De esta forma, su rama gh-pages conserva su historial; si usted es huérfano, no tiene historial. La forma más fácil de hacer el huérfano aquí sería 'git commit-tree v1.6: html -mreset | xargs git branch -f gh-pages' – jthill

+0

Entendido. Muy buen uso de 'git commit-tree', de todos modos. Sin embargo, no rechazaré su respuesta: ya lo hice. – VonC

Cuestiones relacionadas