Doxygenで生成したドキュメントをGitHub Pagesで手軽に公開する方法

以前にもやったのにやり方忘れて調べ直したので、メモっときます。

gh-pagesブランチを作成

以下のコマンドでgh-pagesブランチを作成します。

$ git checkout --orphan gh-pages

--orphanオプションで空の一切履歴のないブランチができます。

以前は以下のようなことをやっていたのですが、だいぶ楽になりました。

$ git symbolic-ref HEAD refs/heads/gh-pages
$ rm .git/index
$ git clean -fdx

Creating Project Pages using the command line - GitHub Help

gh-pagesをGitHubにpush

空のブランチだとpush出来ないので適当なファイルをコミットしてからpushします。

$ echo "My GitHub Page" > index.html
$ git add index.html
$ git commit -a -m "First pages commit"
$ git push origin gh-pages

gh-pagesをsubmoduleにする

masterブランチに戻って、gh-pagesブランチをsubmoduleにします。
ここではdocsというサブディレクトリをしていしています。

$ git co master
$ git submodule add -b gh-pages `git remote -v|grep origin|head -n 1|awk '{print$2}'` docs

doxygenでドキュメントを生成

doxygenの設定(デフォルトではDoxyfile)のHTML_OUTPUTで docs/ を指定して、ドキュメントを生成します。

$ doxygen
$ cd docs
$ git add .
$ git ci -m 'Updated docs'
$ git push origin gh-pages
$ cd ..
$ git add docs/
$ git ci -m 'Updated docs'

このコマンドは適当に自動化しておけばいいと思います。