TL;DR
GitHub PagesのUser Pages(#{username}.github.ioとかになるやつ)はリポジトリ直下がドキュメントルートになる。
サブディレクトリ(/docsとか)をドキュメントルートにするには…
-
masterから別のブランチ(例:source)を作ってリモートにpushしておくgit push origin source
- リポジトリの
Settings->Branches->Default Branchesをsourceに変更する
-
masterブランチをリモートから削除するgit push -f --delete origin master
- ドキュメントルートにしたいディレクトリ(例 :
/docs)をsubtreeとしてmasterという名前でpushするgit subtree push --prefix docs/ origin master
これでhttp(s)://#{username}.github.ioにアクセスすると/docs/index.htmlが表示される。
参考資料
GitHub PagesにはUser & Organization PagesとProject Pagesの2種類がある。Project Pagesはgh-pagesというブランチか/docs以下をドキュメントルートにする「Source」という設定ができたのだが、User & Organization Pagesではmasterのルート直下しか選べない。
「Source」が設定できるようになる前はgh-pagesというブランチを用意するしかなかったのだが、これもルート直下がドキュメントルートになってしまう。masterの/docsをsubtreeとしてpushする、というテクニックが以前から使われていたので、それをmasterとして使ってみたというわけ。