LoginSignup
28
26

More than 5 years have passed since last update.

Gitのリモート追跡ブランチ・追跡ブランチ・上流ブランチ

Last updated at Posted at 2019-03-21

この投稿は、リモート追跡ブランチ・追跡ブランチ・上流ブランチのまとめです:laughing:
Gitのバージョンは、2.21.0

何が違うのか?

ローカルブランチ

ローカルブランチとは、ローカルリポジトリにあるブランチ

ローカルブランチの確認
$ git branch
* develop
  feature/xx1
  master

# ファイルで確認
$ tree .git/refs/heads/
.git/refs/heads/
├── develop
├── feature
│   └── xx1
└── master

リモートブランチ、リモート追跡ブランチ

  • リモートブランチとは、リモートリポジトリにあるブランチ
  • リモート追跡ブランチとは、前回fetch(やpull)をした時点でのリモートブランチを参照するブランチ。ローカルにある。

もっと詳しく

  • リモート追跡ブランチ名は、origin/developのように{remote}/{branch}となる
  • fetch(やpull)をすると自動的に更新される
  • リモート追跡ブランチを「派生元」として、ローカルブランチを作れる:smiley:
  • リモート追跡ブランチは、checkoutしない(detached HEADが起きるかも:laughing:
リモートブランチの確認
$ git branch -r
  origin/HEAD -> origin/master
  origin/develop
  origin/feature/xx1
  origin/master

# ファイルで確認(リモートリポジトリ=origin)
$ tree .git/refs/remotes/
.git/refs/remotes/
└── origin
    ├── HEAD
    ├── develop
    ├── feature
    │   └── xx1
    └── master

上流ブランチ、追跡ブランチ

  • 上流ブランチが設定されたローカルブランチは、追跡ブランチと呼ばれる
  • 追跡ブランチの「追跡先」が上流ブランチ
  • リモート追跡ブランチからローカルブランチを作ると、自動的に上流ブランチが設定。
    • リモート追跡ブランチ = 上流ブランチローカルブランチ = 追跡ブランチとなる
    • この動作は.git/configで変えられる1
  • 上流ブランチは、リモート追跡ブランチやローカルブランチを指定できる。追跡ブランチ ≠ リモート追跡ブランチとなる。

例えば、いまfeature/xx1をcheckoutしているとすると

上流ブランチの場合
# 上流ブランチ = ローカルブランチ
$ git branch --set-upstream-to=develop
Branch 'feature/xx1' set up to track local branch 'develop'.

# 上流ブランチ = リモート追跡ブランチ
$ git branch --set-upstream-to=origin/develop
Branch 'feature/xx1' set up to track remote branch 'develop' from 'origin'.

なぜこんなことが...

追跡ブランチ、上流ブランチがあると、git pull, git push といったコマンドを引数なしで実行可!初心者に優しくて便利&うれしい:laughing:
Gitも進化してるんだね!2

追伸
Gitって、バージョン管理システムなのに、バージョンって言葉が使われない気がする。なぜ??セマンティックバージョニングのせいなのかな。
Git - git-rev-parse Documentation


  1. Git - git-config Documentation 

  2. バージョンによって動作が違う。push.defaultの挙動が、バージョン2.xからmatchingsimpleなど。とうとう Git 2.0 が現実のものに。便利な機能満載 | Atlassian Blogs。各バージョンでの差異は、RelNotes\Documentation - git.git - The core git plumbing 

28
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
26