Help us understand the problem. What is going on with this article?

gitの空ブランチを作る

More than 3 years have passed since last update.

空ブランチ?

そもそも空ブランチとは何かというと、すでにあるコミット (master) なんかのブランチとは関係なく、全く関連性も何もないブランチのこと。

『そんなものがあるのか?』と不思議に思ったのですが、GitHubのとあるリポジトリには、"gh-pages" というものが存在しているのに気がつきました。!

orphan-branch.png

ツリーを見ると、全く独立していて、ドキュメントやプロジェクトページのHTMLが入っていたりします。GitHub上では、このドキュメント用の空のブランチが作れますが、コマンドラインから作るのは知りませんでしたので、メモ。

作り方

"doc" というドキュメント用の空ブランチを作る場合。

  • git checkout --orphan doc

orphanオプションを付ければ良いんですね。

ちなみに、既に履歴のあるリポジトリ上でorphanブランチを作ると、その時点での中身が入ったまま新しいブランチが作成されます。

ということで、いったん新しいブランチのディレクトリの中身を消してしまい、そこから新しくファイルを追加していく必要があります。 空ブランチにだけ必要なファイルを用意しコミットし、すでにあるファイルは必要がなければコミット対象に登録しなければ問題ありません。

ただし、Oprhanブランチから、通常のソースを含む作業ブランチ(masterやdevelop) に切り替えようとすると、Orphanブランチ的には未コミットのファイルがあると、切り替え時に怒られたりしますのでご注意を。

追記:GUIから作れるといいんだけど...

さて、わたしはよくSourceTreeを使うのですが、今の所、Orphan BranchをGUIから作る機能はついていないそうです。(軟弱ですみません...)

なお、SourceTreeからOrphan Branchを見るとこんな感じです:)

orphan-branch-with-sourcetree.jpg

2016/01/30 追記

  • 空ブランチ作成時には、無理に中身を全部消さなくとも大丈夫な件を修正しました。
  • SourceTreeについての情報を載せました。

参考

akiko-pusu
コツコツと学習しながらのメモを書いています。Redmineのプラグイン開発に関連するものが多めです。記事にご興味を持っていただけたら嬉しいです!
https://daily-postit.hatenablog.com
infra-workshop
インフラ技術を勉強したい人たちのためのオンライン勉強会です
https://wp.infra-workshop.tech/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away