はじめに
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
でいいかと。