Posted at

GitHub PagesのUser Pagesでドキュメントルートを変更するにはmasterを殺す

More than 1 year has passed since last update.


TL;DR

GitHub PagesのUser Pages(#{username}.github.ioとかになるやつ)はリポジトリ直下がドキュメントルートになる。

サブディレクトリ(/docsとか)をドキュメントルートにするには…



  • masterから別のブランチ(例:source)を作ってリモートにpushしておく


    • git push origin source



  • リポジトリのSettings->Branches->Default Branchessourceに変更する
    Branches.png


  • 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として使ってみたというわけ。