2013(6年以上前)いまさら感がひしひしと伝わってくる今日この頃ですが、ようやくまともにGitを触りはじめています。いう素晴らしいサイトがあって基本的なところはだいたい理解できました。ところでGitの本を読んでいると大きくわけて三つのブランチが出て来ます。リモートブランチ最初の頃、追跡ブランチとはローカルブランチが追従しているリモートブランチのことで、つまりはリモートブランチと追跡ブランチは同じものを指していると思っていました。両方ともリモートリポジトリ上にあるものだと勘違いしていて、ここでちょっと混乱していました。実のところ、追跡ブランチ自体はローカルリポジトリ上にあります。これに気づくといろいろとGitの理解が深まりました。このことを書いている本ってあまりないですよね。以下のような状態を考えてみます。masterローカルブランチにはmasterだけがあります。オプションを渡すと、ものの本にはリモートブランチの一覧も表示されるとよく書いてあります。remotes/origin/masterremotes/origin/masterがリモートブランチのすべてであるように見えます。このとき、サンフランシスコの同僚がリモートリポジトリに新しいブランチをpushしていたとします。このことをいつ知ることができるのでしょうか。コマンドを何回叩いても、現れるのは上記の通りorigin/masterのみです。コマンドはリモートブランチの一覧を表示しているわけではないのです。何を表示しているのかというと、リモートブランチの情報を持っているローカルリポジトリの中の特殊なブランチの一覧を表示しているのです。この特殊なブランチ、つまり追跡ブランチですが、これ自体はローカルに存在しているのでローカルブランチの一種であるといえます。そのため、最新のリモートリポジトリの状態なんて知らないのです。いうブランチから、ローカルリポジトリにorigin/redwood_cityという追跡ブランチを作ったよ、ということを表しています。remotes/origin/redwood_cityさっきまでなかった、remotes/origin/redwood_cityが表示されました。これがサンフランシスコの同僚が作ったブランチです。このブランチで作業をしたいときは、この追跡ブランチからローカルブランチを作る必要があります。作ってね、という意味になります。fetchはリモートブランチの最新状態をローカルの追跡ブランチに反映するコマンドです。リモートブランチmasterの最新状態も、ローカルのorigin/masterに反映されています。origin/masterというようにしてあげると、最新状態に更新された追跡ブランチorigin/masterを現在作業中のブランチ(上記だとローカルのmasterブランチ)にマージします。結果的に、ローカルのmasterブランチにリモートリポジトリのmasterブランチの最新状態をマージしたことになります。コマンドが中でやっていることです。N進数の整数を扱えるNAdicNumberをつくりました九州往復2500km。