What is it, naokirin?

私の使うGitコマンドまとめ ブランチ&タグ編

バージョン管理システムではよく行われるブランチを切るということ。

Gitでは分散バージョン管理であることを生かして、ローカルとリモート(中央リポジトリ)で違うブランチの状態を作ることが可能です。
つまりローカルで好きにブランチを切っておくことも可能だということです。
よって、非常に気軽にブランチを切ることができ、よく使います。

そして、もうひとつ。
バージョンのリリースの際などにコミットに「タグ」を打つことができます。
これをそのコミットを指すポインタの役割として使うことができます。

git checkout (ブランチをチェックアウトする)

ブランチの切り替え(チェックアウト)を行うのが、

git checkout <ブランチ名>

です。

ブランチの切り替え以外にも、ブランチを作成する際にもよく使われます。(後述の -b を参照。)

-b

ブランチを作成する際は、ただ単に作るだけでなくその後すぐにその作ったブランチをチェックアウトすることがとても多いと思います。
なので git checkout には

git checkout -b <ブランチ名>

という、ブランチ作成後にそのブランチをチェックアウトするオプションがあります。

git branch (ブランチを操作する)

まず現在存在するブランチを見るときに

git branch

とすることで見ることができます。
このとき、

master
* topic

のように表示され、「*」がついたブランチが現在のブランチです。

またブランチを作成するときは

git branch <ブランチ名>

で作ることができますが、git checkout -b の方がよく使われるようです。
私もこの方法でのブランチ作成は行ったことが基本的にありません。

-r

オプション無しではリモートリポジトリのブランチは見ることができません。
そこで

git branch -r

とすると、リモートリポジトリのブランチを見ることができます。

-a

リモートリポジトリ、ローカルリポジトリどちらのブランチも表示させたいときは

git branch -a

とすることで見ることができます。

-D

ブランチを間違って作ってしまった場合、また不要になったブランチを削除する場合は

git branch -D <ブランチ名>

とすることでブランチを削除できます。

-m

ブランチ名を変更することが出来ます。

git branch -m <旧ブランチ名> <新ブランチ名>

とすることでブランチ名を変更することが出来ます。
また、現在のブランチの名前を変更するときには

git branch -m <新ブランチ名>

のようにすることが出来ます。

-M

すでにあるブランチ名に現在のブランチ名を変更することが出来ます。

git branch -M <新ブランチ名>

git tag (タグを打つ)

タグを打つ際は

git tag <タグ名>

で、現在のHEADにタグを付けることができます。

HEAD以外にタグを付ける際は

git tag <タグ名> <コミット>

のように指定することでできます。

またタグの一覧を見る際には

git tag

と打つことで見ることができます。

基本的にタグは、コミットへのポインタとして使うことができます。
つまり、コミットを指定する際にこのタグを用いることもできます。

-a

注釈つきのタグを付ける際には

git tag -a <タグ名>

となります。
このとき、メッセージも同時につけるため、上のようにコマンドを叩くとエディタが起動します。

コマンドでメッセージごと指定するなら

git tag -a <タグ名> -m "メッセージ"

とすることで指定できます。

このとき、注釈がないタグと異なり

git show <タグ名>

とすると

tag <タグ名>
Tagger: Author Name <mail@address.com>
Date:   Sun Jan 1 11:11:11 2012 +0900

Annotation Message
commit 102495885ae6aaf8d3c3576a1b3007bf8993bc9
Author: Author Name <mail@address.com>
Date:   Sun Jan 11 11:11:11 2012 +0900

    Commit Message

のように表示され、単なるポインタとしてではなく、タグ付けしたときの情報とメッセージが付きます。

一般的にはこの注釈つきタグをもちいることがよいと思われます。