答えは、1つのリモートリポジトリが構成されているか、複数あるかによって分かれています。これは、単一のリモートケースの場合、あいまいさが少なくなるため、一部のコマンドを簡略化できるためです。
Git 2.23用に更新:古いバージョンについては、最後のセクションを参照してください。
1つのリモコンで
どちらの場合も、リモートリポジトリからフェッチすることから始めて、最新の変更がすべてダウンロードされていることを確認します。
$ git fetch
これにより、すべてのリモートブランチがフェッチされます。チェックアウトに利用できるブランチは次のように表示されます。
$ git branch -v -a
...
remotes/origin/test
で始まるブランチremotes/*
は、リモートブランチの読み取り専用コピーと考えることができます。ブランチで作業するには、ブランチからローカルブランチを作成する必要があります。これは、Gitコマンドswitch
(Git 2.23以降)でリモートブランチの名前(リモート名を除く)を指定することで実行されます。
$ git switch test
この場合、Gitは--no-guess
、同じ名前のリモートブランチをチェックアウトして追跡しようとしていると推測しています(で無効にできます)。
複数のリモートを使用
複数のリモートリポジトリが存在する場合は、リモートリポジトリに明示的に名前を付ける必要があります。
前と同じように、最新のリモート変更をフェッチすることから始めます。
$ git fetch origin
これにより、すべてのリモートブランチがフェッチされます。チェックアウトに利用できるブランチは次のように表示されます。
$ git branch -v -a
-c
リモートブランチが手元にあるので、新しいローカルブランチを作成するために、関心のあるブランチをチェックアウトする必要があります。
$ git switch -c test origin/test
使用の詳細についてはgit switch
:
$ man git-switch
また、違いを共有し、作品をフェッチする方法と、プルするのがどのように異なるかを確認するために、以下の画像を作成しました。

Git2.23より前
git switch
git checkout
ブランチを切り替えるために使用される前は、Git2.23で追加されました。
単一のリモートリポジトリのみでチェックアウトするには:
git checkout test
複数のリモートリポジトリが構成されている場合は、少し長くなります
git checkout -b test <name of remote>/test