空ブランチ?
そもそも空ブランチとは何かというと、すでにあるコミット (master) なんかのブランチとは関係なく、全く関連性も何もないブランチのこと。
『そんなものがあるのか?』と不思議に思ったのですが、GitHubのとあるリポジトリには、"gh-pages" というものが存在しているのに気がつきました。!
ツリーを見ると、全く独立していて、ドキュメントやプロジェクトページのHTMLが入っていたりします。GitHub上では、このドキュメント用の空のブランチが作れますが、コマンドラインから作るのは知りませんでしたので、メモ。
作り方
"doc" というドキュメント用の空ブランチを作る場合。
- git checkout --orphan doc
orphanオプションを付ければ良いんですね。
ちなみに、既に履歴のあるリポジトリ上でorphanブランチを作ると、その時点での中身が入ったまま新しいブランチが作成されます。
ということで、いったん新しいブランチのディレクトリの中身を消してしまい、そこから新しくファイルを追加していく必要があります。 空ブランチにだけ必要なファイルを用意しコミットし、すでにあるファイルは必要がなければコミット対象に登録しなければ問題ありません。
ただし、Oprhanブランチから、通常のソースを含む作業ブランチ(masterやdevelop) に切り替えようとすると、Orphanブランチ的には未コミットのファイルがあると、切り替え時に怒られたりしますのでご注意を。
追記:GUIから作れるといいんだけど...
さて、わたしはよくSourceTreeを使うのですが、今の所、Orphan BranchをGUIから作る機能はついていないそうです。(軟弱ですみません...)
なお、SourceTreeからOrphan Branchを見るとこんな感じです:)
2016/01/30 追記
- 空ブランチ作成時には、無理に中身を全部消さなくとも大丈夫な件を修正しました。
- SourceTreeについての情報を載せました。