rake setup_github_pages
の動作をちゃんと理解していなかったせいでrake deploy
してもサイトに反映されなくなってしまいました。
経緯
- あるマシンでoctopressをセットアップして使い始める
- 最初の記事を書き、
rake gen_deploy
して公開できたことを確認してsourceブランチをpushする - 別のマシンで2でpushしたリポジトリをcloneしてきて、sourceブランチをcheckoutして記事を書く
-
rake generate
すると_deploy
ディレクトリが無いと怒られる -
mkdir _deploy
する <- まちがい - 記事を書き、
rake gen_deploy
する -> エラー無く完了するも、デプロイされない
原因と対応
_deploy
ディレクトリがgithub pagesリポジトリのcloneじゃなかったからです。
2の状態では上手くいっていたので、Rakefileを読んでみました。
ドキュメントにもちゃんと書いてありますが、rake setup_github_pages
は以下のことをやっています。
- originをoctopressにリネームする
- デプロイ先(username.github.io)をoriginにする
- masterブランチをsourceブランチにリネームする
-
_deploy
ディレクトリを作り、その中でgit initしてfirst commitをする - こちらもoriginをデプロイ先リポジトリにする
username.github.ioを使っている場合は、4で作られるブランチ名はmasterになります(それ以外はgh-pages)。
この_deploy
ディレクトリは、.gitignoreに入っていて除外されているため、username.github.ioをcloneした時点では存在しません。
そのため、他のマシン(あるいは他の人)がcloneするときは以下の手順が必要です。
git clone -b source git@github.com:username/username.github.io
cd username.github.io
git clone git@github.com:username/username.github.io _deploy
あれ、新しいOctopressがある
書いてるときに気づいたんですが、Octopress3.0リリースのアナウンスが…
This release is full rewrite. とか書いてあるし、CLIもまったく別物になっているようです。
せっかく仕組み把握したのに…と思いつつも、そのうち移行します。