不確定特異点

広く深く、ところどころ超深く

Git のリモートブランチ

Git のリモートブランチに対する理解が足らずハマったのでメモ。例えばローカルの作業用に systick という名前のブランチを作ったとします。

$ git checkout -b systick

そこでごにょごにょ作業してコミットします。

$ git commit -am 'Add a new feature'

それを GitHub にあるリモートリポジトリに push します。ここで origin とは GitHub 上のリモートリポジトリを指す別名で、systick は push 対象となるローカルリポジトリ上のブランチ名です。

$ git push origin systick

これで GitHub に systick というブランチが追加されます。続いて、別の PC でこのリモートリポジトリから clone または fetch したとします。このとき、ローカルにも systick というブランチが自動的に作られていると思いきや、git branch に表示されない…。

どうやら、リモートリポジトリから clone または fetch した状態において、ローカルに情報として存在するのは、origin/systick というブランチがどのコミットを指しているかという情報だけのようです。したがって、ローカルに同じブランチを作るには、次にようにする必要があります。

$ git checkout -b systick origin/systick

これで、origin/systick と同じコミットから作業するための systick ブランチができました。詳細はこの辺に解説されてました。

Git - Remote Branches