概要

github-pagesには大きく分け2つある。 User向けのページとProject向けのページ githubのユーザページはmasterブランチに置かれているファイルが(htmlその他)表示の対象となっている。 Projectページではgh-pagesというブランチが表示の対象。

User ページにおいてこの仕様で問題なのは、直接masterブランチにhtmlなどのファイルを配置する場合 特に問題ないが、静的サイトジェネレータを使って出力した結果をページにしたい場合 ソースファイルの置き場所とジェネレータによって生成されたファイルが混在する。 状況として、ソースと生成物が異なるのはいささか衛生上良くないので分けて運用する。

リポジトリの配置が問題であるための解決策として次のことを考えた。 1. Userページのリポジトリにはhtmlファイルを配置するが、ソースは別リポジトリ 2. 同一リポジトリ内に別々に管理されるブランチを設定

1の方法だとかなり面倒であるため、2の方法で解決した。

  1. 親無しブランチsourceを作成 静的サイトジェネレータのソースを配置
  2. masterブランチ 静的サイトジェネレータが生成するoutputの内容を配置

つまり Userページリポジトリには master source この2つのブランチが存在し、それぞれ異なるファイルを管理するように設定

運用に関するフロー

  1. sourceブランチにチェックアウト
  2. 同contentsフォルダにてMarkdown形式の投稿を書く
  3. sourceブランチのルートに戻り make html
  4. output の確認に make devserver としてローカル確認
  5. masterブランチにチェックアウト outputは除外設定としている。
  6. outputフォルダは存在するので cp -r output/* ./
  7. git add -all ; git commit -m "commit message" にて登録
  8. git push origin master

  9. source に再びチェックインし、変更分をcomiit push

などなど


Comments

comments powered by Disqus