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 ブランチができました。詳細はこの辺に解説されてました。