We use a subtree deployment a lá this Gist to deploy a subdirectory of our Yeoman project. In our case, the branch is called production, not gh-pages.
cd dist
git init
git add .
git commit -am "deploy"
git push --force master
rm -rf .git
cd ..
This creates a new git repository in the subdirectory you specify and force pushes everything from there.