« SalesforceのMeetupに行ってきた | メイン | Heroku Connect来ました »

2014年5月 8日 (木)

GitHub pagesの運用を考える

なんか色々手を広げすぎてて自分の首を絞めている。。。(--
WebSocket関連だけでも書きたいことはわりといっぱいあるけど、なかなか手が回らない。。。
なのに今回も脱線ネタ(^^;

GitHub pages

ちょっとしたオープンソースのプロジェクトを作るのであれば、ソースはGitHub、ホームページはGitHub pagesで作成するのが一番お手軽だと思う。

GitHub pagesとはGitHub上で「gh-pages」というブランチを作成するとその内容をWebページとして公開できる機能のこと。機能自体の説明はかなり今更なので知らない人はググってくだされ。(^^;

さて、このGitHub pages。実体としては単なるGitブランチなので、素直に使おうとするとプロジェクトのルートで「git checkout gh-pages」としてブランチを切り替えながら管理することになる。

が、プロジェクトのソースとGitHub pagesで公開したいWebコンテンツはまるっきり異なるので、checkoutの度にディレクトリ構造がごっそりと入れ替わるのはできればさけたい。

個人的にはこのあたりの管理要件として

  • ソースとGitHub pagesのWebコンテンツを同一ディレクトリ内で管理したい
  • ソースとGitHub pagesの内容をcheckoutで切り替えたくない

という二つがあったのでこのあたりの記事を参考にしながら、それを可能とする方法を考えてみた。

手順

以下の手順はGitHub上で既にソースコードが管理されている前提からスタートしています。

1. GitHub上でgh-pagesをジェネる

gh-pagesのコンテンツはもちろん、自分で一から作っても良いのだが、久々にGitHubのジェネレーターを使ったらいい感じのテンプレートがかなりたくさん揃っていたので、よっぽどデザインにこだわりのある人以外はもうこれで良いんじゃないかと思う。(^^;
あとからカスタマイズするのにも特に不都合はないし。

これだけでgh-pagesブランチが作成されて、そこにコンテンツがコミットされます。

2. プロジェクトルートに「gh-pages」というディレクトリを作成し、そのディレクトリを.gitignoreに追加

gh-pagesの管理用のディレクトリを作成し、そのディレクトリを.gitignoreに追加して管理対象外にします。

3. gh-pagesディレクトリに移動してGitHubからgh-pagesブランチの内容を取得

具体的なコマンドは以下のような感じ

cd gh-pages
git init
git remote add origin git@github.com:xxxx/yyyy.git
git checkout -b gh-pages
git pull origin gh-pages
git branch -d master

ようするにgh-pagesディレクトリをgh-pagesブランチ専用のディレクトリにしちゃう。
masterブランチは特に必要ないので削除する。

以降はプロジェクトルートとgh-pagesを移動しながら、普段と同じ感覚のgit操作で両方を管理できる。
(「git config --global push.default matching」を設定しておけばブランチ名を省略できるのでますます便利)

他にもっと良い方法がありそうな気もするけど、本気でググると見たことないgitコマンドがいっぱいでてきて憂鬱になったので、手持ちの技だけで対処してみた。(^^;
とりあえずは満足(^^v

コメント

コメントを投稿

採用情報

株式会社フレクトでは、事業拡大のため、
Salesforce/Force.comのアプリケーション
開発
HerokuやAWSなどのクラウドプラッ
トフォーム上でのWebアプリケーション開発

エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみた
い方、是非ご応募下さい。

フレクト採用ページへ

会社紹介

株式会社フレクトは、
認定コンサルタント
認定上級デベロッパー
認定デベロッパー
が在籍している、
セールスフォースパートナーです。
heroku partnersにも登録されています。
herokuパートナー
株式会社フレクトのSalesforce/Force.com
導入支援サービス
弊社の認定プロフェッショナルが支援致します。
・Visualforce/Apexによるアプリ開発
・Salesforceと連携するWebアプリ開発
も承っております。
セールスフォースご検討の際は、
お気軽にお問合せください。
Powered by Six Apart