読者です 読者をやめる 読者になる 読者になる

tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

git branchメモ - ローカルやリモートのブランチ一覧を見る。リモートブランチ(追跡ブランチ)の情報を更新する(オプション-r、-a)

はじめに

gitのbranch操作でオプションをちょいちょい忘れちゃうのでメモ

こんなん

  • ローカルのbranch一覧を見る
  • リモートのbranch情報である追跡ブランチの一覧を見る
  • ローカルとリモート(追跡)両方のbranch一覧を見る
  • リモートブランチ(追跡ブランチ)情報を更新する
  • リモートリポジトリ情報を見る

ローカルのbranch一覧を見る

オプション無しでbranchればローカルのbranch一覧がみれます

# git branch
* master
  myBranch

リモートのbranch情報である追跡ブランチの一覧を見る

-rオプションで見れます。

の前に、-rオプションで見れるのは「リモートブランチ」、 と言ってしまいそうになりますが実際は「追跡ブランチ」と呼ばれているブランチの一覧が見れます。
追跡ブランチはリモートブランチの情報を持っているブランチです。

後で出てくる更新(fetch)を見てもらうとわかりやすいですが、
イメージ的にはこんな感じです。

o │  リモートブランチ
r │      ∧
g │      │
i │      │ 
n │      │
──┼──────┼───────────────
ロ│      │
ー│  追跡ブランチ (リモートブランチの情報は持ってるが自動で同期はしていない) 
カ│  
ル│  ローカルブランチ 

あくまでもあるタイミングのリモートの「情報」なので、
fetchを使うことで追跡ブランチを新しいリモートの情報に更新します。

ってことで一応コマンド

# git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/remoteBranch

なので、実際この一覧はリモートブランチと差分があります。

ローカルとリモート(追跡)両方のbranch一覧を見る

-aでローカルとリモートの情報である追跡ブランチの両方を見れます。
-rとちがってリモートを区別するために前にremotes/がつきます

# git branch -a 
* master
  myBranch
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/remoteBranch

リモートブランチ情報を更新する

↑で書いたつたない図の通り、-r-aは追跡ブランチの情報なので
実はリモートには新たにブランチが追加されているかもしれません。
そんなときはgit fetchで追跡branchを更新します

※ fetchる前に確認
# git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/remoteBranch

※ こんな感じで出ると新しく追加されてるのがあった
# git fetch
remote: Counting objects: 66, done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 66 (delta 34), reused 0 (delta 0)
Unpacking objects: 100% (66/66), done.
From github.com:pj/myProject
 * [new branch]      newBranchName -> origin/newBranchName
   8d1acfe..c3d7750  master     -> origin/master
 * [new tag]         Releases/2014.37.0.0 -> Releases/2014.37.0.0


※ 再度見ると更新されて一覧が増えてる
# git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/newBranchName
  origin/remoteBranch

リモートリポジトリ情報を見る

こちらはついでですがリモート情報をみれます

# git remote
origin

※ 詳細がでる
# git remote -v
origin  git@github.com:pj/myProject (fetch)
origin  git@github.com:pj/pmProject (push)

まとめ

とりあえず忘れそうならつねにfetch->-aでいいかと。