Normalmente suelo publicar las aplicaciones web que hago en algún servidor dedicado, pero el otro día participando en un hackathon, me acordé de la rama gh-pages de Github y lo fácil que es publicar tu aplicación web directamente con Github.

El workflow para utilizar gh-pages es bastante sencillo y lo pongo aquí en el blog, básicamente para acordarme para otra vez porque no suelo usar Git :). Si a alguien más le sirve pues perfecto.
 

Workflow para publicar una aplicación web en Github con gh-pages

 
Lo primero es crear una rama con el nombre gh-pages y Github se encargará de publicarlo automáticamente. Por ejemplo, en mi caso durante el hackathon estuve trabajando en este repositorio https://github.com/alrocar/wiw.

 
Las dos instrucciones que necesitamos para crear la rama gh-pages son:
 


git checkout -b gh-pages


git push -u origin gh-pages

 
Al crear la rama gh-pages podemos acceder a lo que publica Github a través de esta URL, http://alrocar.github.io/wiw/

Para cambiar de rama utilizamos siempre el comando
 


git checkout

 
Si normalmente desarrollamos en la rama master y queremos que los cambios que hemos hecho se publiquen en la web que genera Github con gh-pages, debemos seguir el siguiente workflow:

Trabajamos con normalidad en la rama master y en algún momento decidimos subir cambios a Github:
 


git push origin master

 
A continuación, cambiamos a la rama gh-pages:
 


git checkout gh-pages

 
Mezclamos los cambios de la rama master sobre la rama gh-pages que obviamente estará desactualizada:
 


git merge master

 
Subimos los cambios a la rama gh-pahes en Github
 


git push origin gh-pages

 
Lo que acabamos de hacer es subir los cambios de la rama de desarrollo a la aplicación web en Github. A continuación, si queremos seguir desarrollando, volvemos a la rama master:
 


git checkout master

 
Y este workflow lo podemos repetir hasta el infinito

 

¿Cómo despublicar tu aplicación web de Github?

 

Si en algún momento, queremos despublicar la aplicación web en Github simplemente debemos borrar la rama gh-pages:
 


git push origin --delete gh-pages

Por cierto, que también se puede utilizar gh-pages como hosting de una web y utilizar un nombre de dominio. Si eso ya lo contaré otro día 🙂