Fix official doc.
Reference from https://hexo.io/docs/github-pages, but fix the bug in .travis.yml.
As user page, github must be built from only the master branch, but the config in .travis.yml is deploy static pages to gh-pages. That can only result in 404 when view usename.github.io.
In this tutorial, we use Travis CI to deploy Github Pages. It is free for open source repository, meaning your repository’s master branch has to be public. Please skip to the Private repository section if you prefer to keep the repo private, or prefer not to upload your source folder to GitHub.
- Create a repo named username.github.io, where username is your username on GitHub. If you have already uploaded to other repo, rename the repo instead.
- Push the files of your Hexo folder to the repository. The public/folder is not (and should not be) uploaded by default, make sure the.gitignorefile containspublic/line. The folder structure should be roughly similar to this repo, without the.gitmodulesfile.
- Add Travis CI to your account.
- Go to Applications settings, configure Travis CI to have access to the repo.
- You’ll be redirected to Travis page.
- On a new tab, generate a new token with repo scopes. Note down the token value.
- On the Travis page, go to your repo’s setting. Under Environment Variables, put GH_TOKEN as name and paste the token onto value. Click Add to save it.
- Add .travis.ymlfile to your repo (alongside _config.yml & package.json) with the following content:1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19sudo: false 
 language: node_js
 node_js:
 - 10 # use nodejs v10 LTS
 cache: npm
 branches:
 only:
 - hexo-source # store source code in hexo-source branch, this is where I fix.
 script:
 - hexo generate # generate static files
 deploy:
 provider: pages
 skip-cleanup: true
 github-token: $GH_TOKEN
 keep-history: true
 target_branch: master # generate static files to master, this is where I fix.
 on:
 branch: hexo-source # read source from hexo-source branch, this is where I fix.
 local-dir: public
- Once Travis CI finish the deployment, the generated pages can be found in the gh-pagesbranch of your repository
- In your GitHub repo’s setting, navigate to “GitHub Pages” section and change Source to gh-pages branch.
- Check the webpage at username.github.io.
Project page
If you prefer to have a project page on GitHub:
- Navigate to your repo on GitHub. Go to the Settings tab. Change the Repository name so your blog is available at username.github.io/repository, repository can be any name, like blog or hexo.
- Edit your _config.yml, change the root:value to the/<repository>/(must starts and ends with a slash, without the brackets).
- Commit and push.
Private repository
The following instruction is adapted from one-command deployment page.
- Install hexo-deployer-git. 
- Add the following configurations to _config.yml, (remove existing lines if any) - 1 
 2
 3
 4
 5- deploy: 
 type: git
 repo: https://github.com/<username>/<project>
 # example, https://github.com/hexojs/hexojs.github.io
 branch: gh-pages
- Run - hexo clean && hexo deploy.
- Check the webpage at username.github.io.