First of all, you need to have a gh-pages. If you don't have, create:
git branch gh-pagesThis makes a branch based on the master HEAD.
It would be okay but the files and the git history of master branch are not meaningful on gh-pages branch.
Using an --orphan branch, you can initialize gh-pages in a clean way.
git checkout --orphan gh-pages
git reset --hard
git commit --allow-empty -m "Init gh-pages branch"
git checkout masterThen, mount the branch as a subdirectory using git worktree:
git worktree add dist gh-pagesIf you didn't ignore the dist folder, ignore it so that you don't add generated files accidentally in your master branch commits.
echo "dist/" >> .gitignoreEvery time you build the static bundle, generated files are in dist directory.
Since dist folder is now gh-pages branch, you can deploy it directly by just creating a commit and pushing it.
cd dist
git add --all
git commit -m "Deploy on gh-pages updated"
git push origin gh-pagesThis way nothing was added to the master branch history, keeping it clean.