はじめに
Gitを使って開発を進めるにあたっては、機能ごとにブランチを切って開発したい、と思う事があるかと思います。
というより、機能ごとにブランチを切って開発をするべきだと思いますが、その際使用するコマンドが今回の「$ git branch」コマンドになります。
例えば、プログラムのバグを見つけた時はバグフィックス用のブランチを切って修正を行い、その後、masterブランチにマージする、という流れで開発していけばよいと思います。
マージ後はブランチを削除して、綺麗にしたりと。
ブランチを新規作成したら名前変更をすることもあるでしょうし、削除することもあるかと思います。
また、ローカルリポジトリ側だけでなくリモートリポジトリ側にもどんなブランチが存在するのかを確認したいときは、git branch コマンドにオプションを付ければOKです。
言っている自分もオプション等を忘れることがありますので、備忘録用に残したいと思います。
基本的な構文とオプション
基本的な構文は以下になります。
$ git branch [-a もしくは -r] [-v もしくは --vv]
$ git branch [(--merged | --no-merged | --contains) [コミットID]]
$ git branch [--list [パターン]] [-v もしくは -vv]
オプション
使用できるオプションは以下になります。
オプション | 説明 |
---|---|
-r | リモートリポジトリの追跡中ブランチを表示する。 |
-a | ローカルブランチ及びリモートリポジトリの追跡中ブランチを 表示する。 |
-v | ブランチの一覧表示及びHEADのコミット情報(ハッシュと コミットメッセージ)を表示する。 |
-vv | -vの出力結果+上流ブランチ名も表示 |
–no-merged [commit-id] | 現在のブランチにマージされていないブランチを表示。コミットを指定すると、そのコミット時点でマージされていないブランチを表示。 |
–merged [commit-id] | 現在のブランチにマージされているブランチを表示。コミットを指定すると、そのコミット時点でマージされているブランチを表示。 |
–contains [commit-id] | 指定したコミットを含んだブランチを表示。コミットを省略した場合はHAEDを指定したと判断される。 |
–list [pattern] | ”test_branch/*”などのパターンにマッチしたブランチ一覧を表示。パターンを省略した場合はローカルブランチが表示される。 |
上記のいくつかのオプションを使用した例が以下になります。
# オプション「-r」のサンプル
$ git branch -r
origin/master
# オプション「-a」のサンプル
$ git branch -a
feature
* master
remotes/origin/master
# オプション「-v」のサンプル
$ git branch -v
feature c1efdc9 ※ここにコミットメッセージが入ります
* master 15926a0 ※ここにコミットメッセージが入ります
# オプション「-vv」のサンプル
$ git branch -vv
feature c1efdc9 ※ここにコミットメッセージが入ります
* master 15926a0 [origin/master] ※ここにコミットメッセージが入ります
branchの新規作成
ブランチを新規作成するには、次のコマンドを使用します。
# ブランチを新規作成
$ git branch <ブランチ名>
branchを新規作成するサンプル
試しに「feature」ブランチを新規作成してみます。
# 現在のブランチの状況を確認(一覧表示)
$ git branch
* master
# featureブランチを新規作成
$ git branch feature
# 再度、現在のブランチ状況を確認(一覧表示)
$ git branch
feature
* master
問題なくfeatureブランチが新規作成されましたね。
因みに「*」が付いているのは、現在自分が作業しているブランチを表しています。
つまり、「私は今、masterブランチにいますよ~」ということですね。
ブランチの新規作成と同時に切り替えたい、つまり上の例で言うと「master」ブランチにて「feature」ブランチを新規作成と同時に切り替えたい場合は、下記のように「$ git checkout -b <新ブランチ名>」を実行します。
# 現状のブランチを確認
$ git branch
feature
* master
# 「new_feature」ブランチを新規作成+切り替え
$ git checkout -b new_feature
Switched to a new branch 'new_feature'
# 切り替わったことを確認
$ git branch
feature
master
* new_feature
$ git checkout コマンドに関しては、別途コンテンツをアップしたいと思います。
branchの一覧表示
既に上記で使用しましたが、ブランチの一覧表示をするには「$ git branch」コマンドを実行します。
この場合、ローカルリポジトリ側にあるブランチを表示しますが、リモートリポジトリ側のブランチも表示させたい場合はオプションに「-a」を付けてあげます。
# ローカルリポジトリ側のブランチを一覧表示
$ git branch
feature
* master
# リモートリポジトリ側も含めたブランチを一覧表示
$ git branch -a
feature
* master
remotes/origin/master
branchの名前変更
ブランチの名前を変更したい場合は、次のコマンドを実行します。
# ブランチの名前変更
$ git branch -m <旧ブランチ名> <新ブランチ名>
# ブランチの名前変更(強制上書き)
$ git branch -M <旧ブランチ名> <新ブランチ名>
オプション
使用できるオプションは以下になります。
オプション | 説明 |
---|---|
-m <旧ブランチ名> <新ブランチ名> | ブランチの名前を変更 |
-M <旧ブランチ名> <新ブランチ名> | ブランチの名前を変更(強制上書き) |
branchの名前を変更するサンプル
試しに、「feature」ブランチを「new_feature」ブランチに名前を変更してみます。
# 現在のブランチ状況を確認
$ git branch
feature
* master
# ブランチの名前を変更
$ git branch -m feature new_feature
# 再度、現在のブランチ状況を確認
$ git branch
* master
new_feature
無事、ブランチの名前が変更されましたね。
また、「<旧ブランチ名>」が省略された場合は、現在のブランチ名が変更されますのでご注意を。
試してみましょう。
# 作業ブランチを「new_feature」に切り替える
$ git checkout new_feature
Switched to branch 'new_feature'
# ブランチを確認
$ git branch
master
* new_feature
# 「<旧>ブランチ名」を省略して、コマンドを実行
$ git branch -m feature
# ブランチを確認
$ git branch
* feature
master
「<旧ブランチ名>」を省略してコマンドを実行すると、現在のブランチ名が変更されましたね。
人にもよるかと思いますが、なるべく省略せずにコマンドを実行した方がミスが少なくてよろしいかと思います。
branchの削除
ブランチを削除する場合は、次のコマンドを実行します。
# ブランチを削除
$ git branch -d <ブランチ名>
# ブランチを強制削除
$ git branch -D <ブランチ名>
オプション
使用できるオプションは以下になります。
オプション | 説明 |
---|---|
-d <ブランチ名> | 指定したブランチを削除 |
-D <ブランチ名> | 指定したブランチを強制削除 |
branchを削除するサンプル
でわ、試してみます。
# 現在のブランチを確認
$ git branch
feature
* master
# featureブランチを削除
$ git branch -d feature
Deleted branch feature (was c1efdc9).
# 再度、ブランチを確認
$ git branch
* master
無事、「feature」ブランチが削除されました。
マージしていないブランチを削除しようとすると、エラーになるのでご注意を。
それでも、強制的にブランチを削除したい場合は「-D」を付けて実行します。
まとめ
いろいろオプションがあるのでなかなか覚えにくいかと思いますが、普段から触って覚えるしかないですね。
私もよく忘れますので、自分用の備忘録として。。
コメント