Githubでgh-pagesを作成する
ちなみにプロジェクトのコードとPRページを同一のファイルで管理するのが前提条件。 ここが参考になった。
今までやってた方法
リポジトリ作ったらmaster派生のブランチ、gh-pagesを作っておく。 普段はgh-pagesブランチで作業して更新の度にmasterにgh-pagesをmergeしてpush。 初心者の自分から見てもキモいやり方だと思う。
$ git add .
$ git commit -m '---'
$ git push origin gh-pages
$ git checkout master
$ git merge gh-pages
$ git push origin master
そもそもgh-pagesで作業してからmasterに反映とかなんか違う。 developとかなら分からんでもないけど。
rebaseを使う
普段はmasterで作業してgh-pagesに修正を反映してpush。 うん、さっきよりはいい。
$ git add .
$ git commit -m '---'
$ git push origin master
$ git checkout gh-pages
$ git rebase master
$ git push origin gh-pages
ただ毎回切り替えてrebase、pushするのがメンドイ。
上記の一部ワークフローを自動化
Paul Irish様の提案らしい。 まずは下記参考サイトを元に.git/hooks/post-commitにファイルを設置。
するとさっきまでの煩わしいコマンドが下記のように。
$ git add .
$ git commit -m '---'
$ git push --all
ってgh-pagesが更新されてねー!!!!!!
ということで現在も調査中。
Windows環境ではcommit後にちゃんと実行されてた。
なぜMacだとダメなんだろうか。
環境変数辺りだろうか。
結果から言うとpost-commitパーミッションが755になっていなかったのが原因だった。 まずはpost-commitのパーミッションを確認してみる。
$ ls -l /path/to/post-commit
rw-r--r-- 1 username staff 209 4 20 15:48 /path/to/post-commit
このrw-r--r--ってのが644ってのがあたるので読み書きは可能だけど実行出来ない。 実行可能にするためにsudoでパーミッションを実行可能な755に変更してやる。
$ sudo chmod 755 /path/to/post-commit # chmodは「change mode」の略でファイルやディレクトリのアクセス権を変更するコマンド
これで無事完成!