git fetch
コマンドの概要
リモートリポジトリを設置した場合、Gitはリモートリポジトリのブランチを上流ブランチとして追跡し、ローカルリポジトリを同期していく。リポジトリ内に変更を加えるときは、ローカルリポジトリに変更を加えたのをリモートリポジトリに反映させ、リモートリポジトリを直接変更する動作はしない。
git fetchはリモートリポジトリとの同期のためにリモート追跡ブランチにリモートリポジトリの内容を反映するコマンドである。
上流ブランチ
ブランチは特定のコミットを示すポインタであり、リモートリポジトリにおいても同様に特定のコミットを指している。
ローカルブランチとリモート上のブランチをマージもしくはリベースすることにより、ローカルとリモートが同期されるが、その同期対象として指定されたブランチが上流ブランチである。
ブランチは特定のコミットを示すポインタであり、リモートリポジトリにおいても同様に特定のコミットを指している。
ローカルブランチとリモート上のブランチをマージもしくはリベースすることにより、ローカルとリモートが同期されるが、その同期対象として指定されたブランチが上流ブランチである。
git cloneを実行したとき、originというリモートリポジトリ上にmasterブランチが存在しており、ローカルにmasterブランチが作成される。ローカルのmasterブランチの上流ブランチとしてoriginのmasterブランチが指定され、ローカルリポジトリ内にorigin/masterというリモート追跡ブランチが設定される。リモート追跡ブランチ
上流ブランチに設定したリモートブランチを参照するためにローカルリポジトリにリモート追跡ブランチが設定される。ローカルリポジトリに上流ブランチのコピーがリモート追跡ブランチとして存在していると考えてよい。上流ブランチとローカルブランチの同期はリモート追跡ブランチを通じて行われる。
上流ブランチに設定したリモートブランチを参照するためにローカルリポジトリにリモート追跡ブランチが設定される。ローカルリポジトリに上流ブランチのコピーがリモート追跡ブランチとして存在していると考えてよい。上流ブランチとローカルブランチの同期はリモート追跡ブランチを通じて行われる。
コマンドの使い方
リモートリポジトリ上のすべてのブランチを対象としてリモート追跡ブランチに展開するには
1$ git fetch origin
現在チェックアウトしているブランチの上流ブランチを対象としてリモート追跡ブランチに展開するには
1$ git fetch
originのmainブランチをリモート追跡ブランチに展開するには
1$ git fetch origin main
リモート追跡ブランチにはFETCH_HEADでアクセスできる。