############################ 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 gh-pages --set-upstream Now go back to the master branch:: git co master make gh-pages