これまでにブランチの作成、マージ、そして削除を行いました。 ここで、いくつかのブランチ管理ツールについて見ておきましょう。 今後ブランチを使い続けるにあたって、これらのツールが便利に使えるでしょう。
git branch
コマンドは、単にブランチを作ったり削除したりするだけのものではありません。
何も引数を渡さずに実行すると、現在のブランチの一覧を表示します。
$ git branch
iss53
* master
testing
*
という文字が master
ブランチの先頭についていることに注目しましょう。
これは、現在チェックアウトされているブランチ (HEAD
が指しているブランチ) を意味します。
つまり、ここでコミットを行うと、master
ブランチがひとつ先に進むということです。
各ブランチにおける直近のコミットを調べるには git branch -v
を実行します。
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes
便利なオプション --merged
と --no-merged
を使うと、この一覧を絞り込んで、現在作業中のブランチにマージ済みのもの (あるいはそうでないもの)
だけを表示することができます。
現在作業中のブランチにマージ済みのブランチを調べるには git branch --merged
を実行します。
$ git branch --merged
iss53
* master
すでに先ほど iss53
ブランチをマージしているので、この一覧に表示されています。
このリストにあがっているブランチのうち先頭に *
がついていないものは、通常は git branch -d
で削除してしまって問題ないブランチです。
すでにすべての作業が別のブランチに取り込まれているので、何も失うものはありません。
まだマージされていない作業を持っているすべてのブランチを知るには、git branch --no-merged
を実行します。
$ git branch --no-merged
testing
先ほどのブランチとは別のブランチが表示されます。
まだマージしていない作業が残っているので、このブランチを git branch -d
で削除しようとしても失敗します。
$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.
本当にそのブランチを消してしまってよいのなら -D
で強制的に消すこともできます。……と、親切なメッセージで教えてくれていますね。