############################
Setting up a gh-pages branch
############################

These assume a default sphinx build directory of ``doc/_build``.

Makefile target (don't forget the tabs before the target body lines)::

    git-clean:
        git clean -fxd

    html:
        cd doc && make html

    gh-pages: git-clean html
        git co gh-pages
        git rm -r .
        git checkout HEAD -- .gitignore README.md .nojekyll
        cp -r doc/_build/html/* . # your sphinx build directory
        git stage .
        @echo 'Commit and push when ready or git reset --hard && git checkout master to revert'


Make a new empty ``gh-pages`` branch::

    git checkout --orphan gh-pages
    git reset --hard
    git clean -fxd

Make some files for working with github pages in this branch::

    # Ignore the doc and doc build directory
    echo "doc/" > .gitignore
    echo "Github pages for project" > README.md
    touch .nojekyll
    git add .gitignore .nojekyll README.md
    git commit -m 'Initial commit'

Set the upstream for this branch::

    git push <your-github-remote> gh-pages --set-upstream

Now go back to the master branch::

    git co master
    make gh-pages
