git worktreeでGitHub Pagesの管理を楽にする
書いてから気づいた...
イマドキのGitHubはgh-pagesブランチだけでなく、 masterブランチの/docs
ディレクトリ以下をドキュメントとする 機能があった。
git worktreeを使わずとも最初からこれで良かった…( ˘ω˘)
やりたかったこと
- ドキュメントの公開をGitHub Pagesで行おうとした際に、イチイチ
- masterブランチからgh-pagesブランチに移動して、
- gh-pagesブランチでドキュメント書いて、
- git commit & git pushして、
- という手順が面倒だったのでどうにかしたかった。
git v2.5以降が導入されているならばgit worktreeというコマンドを使うことで「特定のディレクトリ以下を別のブランチとして扱う」ことができるので、これで「masterブランチの/documents
ディレクトリ以下をgh-pagesブランチとして扱う」ということができるようになる。
手順例
# よしなにリポジトリを準備する $ git init git-worktree-gh-pages $ touch README.md && git add README.md && git commit -m 'Initial commit' # gh-pagesブランチをチェックアウト $ git checkout -b gh-pages # masterブランチに含まれていたファイルを消しつつ、ドキュメント用のindex.htmlを追加してコミット $ git rm * $ touch index.html $ git add index.html && git commit -m 'Add index.html' # masterブランチをチェックアウトして、/documentsディレクトリをgh-pagesとして使うようにする $ git checkuot master $ git worktree add documents gh-pages $ git add documents && git commit -m 'Add worktree documents (gh-pages branch)'
こうすることで、documentsディレクトリ以下に移動したときは自動的にgh-pagesブランチに対して操作していることになるので、gh-pagesブランチをチェックアウトすることなくそのままdocumentsディレクトリ以下に対してドキュメントを生成することでGitHub Pagesを作ることができる。