リモートブランチのチェックアウト方法についてのガイドです。リモートGitリポジトリからコードを取得するプロセスについて詳しく説明します。
Not a reader? Explore this related video tutorial!
Not seeing the video? Ensure your ad blocker is disabled.
前提条件
- このチュートリアルでは、Windows 10でバージョン2.30のGit SCM(ソースコード管理)を使用していますが、Gitがサポートする任意のOSで互換性があります。
Windows向けの他のインストール方法には、ChocolateyとGit4Winがあります。
- A remote Git repository from platforms like GitLab, GitHub, or Azure DevOps is required. This article provides sample repositories for a hands-on experience, or you can utilize your own.
リモートブランチの理解
Gitリポジトリは、ブランチ内の関連するコミットのシーケンスを記録・追跡します。デフォルトでは、コミットは現在アクティブなブランチに存在し、通常はmain
またはmaster
と呼ばれます。
A remote branch is a branch located in a remote Git repository. These remote repositories, termed as “remotes,” are the destinations your local Git repository will scout for external commit updates once set up.
Gitのbranch
コマンドを使用して利用可能なブランチを確認します。アスタリスク(*
)でマークされたブランチがアクティブなものです。以下にリストされているブランチは、リモートブランチがまだフェッチされていないため、完全にローカルのものです。

git branch
command.Gitのチェックアウトリモートブランチのマスタリング
ローカルのGitリポジトリがあり、他の開発者と協力する必要が生じた場合、Gitのcheckout
コマンドが役立ちます。このコマンドを使用すると、リモートGitリポジトリのリモートブランチから最新のコミットをフェッチすることができます。
リモートブランチが設定されると、ローカル専用のブランチではなくリモートブランチがミラーされます。以下はgit checkout remote <branch>
コマンドの例です。
リモートGitリポジトリのクローン
既存のリポジトリが利用可能になったので、それに潜り込む時が来ました。以下の手順に従って、リモートリポジトリをローカルのフォルダにクローンします。
1. 証明書とファイアウォールの問題を回避するため、リモートリポジトリをHTTPSのURL経由でクローンする方が簡単です。
- GitHub上のリポジトリに移動します。
- Codeボタンをクリックし、HTTPSを選択します。
- リンクの隣にあるClipboardアイコンをクリックしてURLをクリップボードにコピーします。

2. HTTPS URLをクリップボードにコピーした後、WindowsコマンドプロンプトやWindows Terminalなど好きなCLIを使用してコマンドラインインターフェースを開きます。
3. クローンしたリポジトリを保存したいフォルダに移動します。このチュートリアルでは、スクリーンショットに示されているようにホームディレクトリのgitフォルダが使用されます。以下のコマンドを実行して、リモートリポジトリを含むサブフォルダを作成します。

4. コマンドcd git-checkout-remote-branch
を使用して、クローンしたリポジトリに移動します。
以下のステータスコマンドを実行して、リポジトリが正常にクローンされたか確認します。Gitのstatus
コマンドは、ローカルブランチとリモートブランチの違いを明らかにし、ブランチが接続されているかどうか、更新されているかどうかを判断するのに役立ちます!デフォルトのGitリモートはorigin
と呼ばれ、main
リモートブランチに接頭辞が付けられます。git status

ほとんどの現代のGitソフトウェアでは、
main
がデフォルトの主ブランチです。古いアプリケーションでは、デフォルトのブランチ名としてmaster
を使用している場合もありますが、両方の名前は機能的には同じです。このチュートリアルでは、main
、RemoteBranch
、SomeBranch
、AnotherBranch
という名前のブランチを使用しています。
Gitリモートとリモートブランチのトラッキングとは何か
リポジトリをクローンすると、リモートソースへの参照、つまりリモートが自動的に作成されます。この参照は、新しいコミットのチェックやリモートリポジトリへの新しい変更のプッシュに使用されます。
A Git repository itself may have multiple remotes, but a branch can only reference a single remote.
リモートブランチのトラッキングは、ローカルブランチとの関係を確立します。この関係により、リモートブランチからローカルブランチにコミットを簡単にプッシュまたはプルすることができます。さらに、トラッキングされたブランチは、ローカルブランチがリモートからどれだけ進んでいるか、または遅れているかを示します。
Gitリポジトリのリモートの一覧表示
まず、作業しているリポジトリにGitリモートがあることを確認してください。以下に示すように、git remote
コマンドでリポジトリのGitリモートを表示します。この例では、origin
とremote2
の2つのリモートが表示されています。

2つの追加のトラッキングされたリモートリポジトリの名前は、
origin
とremote2
です。リモートは異なる場合があります。
設定されたリモートについての詳細を把握するには、v
スイッチを追加して完全なGitリモートURIを表示します。

なぜ
fetch
とpush
のために別々のURIがあるのか疑問に思うかもしれません。一部のGitワークフローでは、リポジトリの更新をチェックするURIと、変更を送信するURIが異なる場合があります。これを三角形ワークフローと呼びます。
利用可能なリモートブランチの表示
リポジトリ内のすべての利用可能なローカルおよびリモートブランチをbranch
コマンドで表示します。リモートブランチも表示するには、以下のようにall
スイッチを追加します。
以下の画像では、このチュートリアルで使用されているリモートリポジトリoriginが予想どおり表示されています。ただし、この画像にはRemote2という名前のリモートからのすべてのブランチが含まれていません。

リモートのブランチがブランチリストに表示されていない場合は、次のセクションで説明するように、利用可能なリモートブランチのリストを更新する必要があります。
利用可能なリモートブランチの更新
時には、リモートリポジトリにブランチが追加または変更されることがあります。最新のブランチを使用していることを確認するには、git fetch
コマンドを実行する必要があります。
fetch
コマンドは、リモートリポジトリに接続し、利用可能なすべてのブランチのリストを取得します。 git fetch
コマンドを実行した後、現在追跡しているブランチを表示して、リモートブランチが表示されることを確認できます。
以下の例では、ブランチremotes/origin/RemoteBranch
がgit fetch
コマンドを実行した後に利用可能なリモートブランチのリストに表示されます。

git fetch
to update the list of available remote branches.fetch
コマンドは、現在のブランチで追跡しているリモートからの更新のみをチェックします。リポジトリ内のすべてのリモートからの更新をチェックするには、all
パラメータを追加します。
特定のリモートから利用可能なブランチをフェッチするには、git fetch
コマンドにリモート名を含めます。以下の例では、Remote2
を使用してブランチmain
を取得します。

main
from remote2
with the git fetch
command.リモートの更新を確認するたびに、
git fetch
、git pull
、またはgit push
を使用すると、Gitはコミットをリモートブランチと比較します。ローカルブランチは任意のGitリモートブランチをトラッキングすることができます。さらに、複数のローカルブランチが同じリモートブランチをトラッキングするように設定できます。
各ブランチのリモートトラッキングの表示
コマンドgit branch
にvv
パラメータを使用して、トラッキングされているリモートブランチを対応するローカルブランチと一緒に表示します。以下のような形式で、リモートとブランチのリストが表示されます。[<リモート>/<ブランチ>]
。

ブランチのリモートトラッキングの変更
ローカルブランチを別のリモートブランチに変更する必要がある場合は、u
パラメータを使用して現在のブランチを特定のリモートブランチに設定します。以下の例を参考にしてください。

Gitリモートブランチのチェックアウト
リモートGitリポジトリで作成された新しいブランチをチェックアウトする場合、checkout
コマンドを使用します。
以下の条件が満たされている場合、Gitは自動的に適切なリモートを決定し、リモートブランチのローカルコピーをダウンロードし、ローカルコピーをリモートブランチに対してトラッキングするように設定します。以下の条件が満たされていないかを、git branch --all
コマンドの結果を通じて確認してください。
- A local branch with the same name does not already exist.
- 同じリモートブランチ名を使用する複数のリモートが存在しないこと。
リモートブランチをgit checkoutする操作を行うには、以下に示すようにgit checkout
コマンドを使用し、リモートブランチの名前を入力してください。

git checkout
.既に同じ名前のローカルブランチがローカルリポジトリに存在する場合、リモートブランチをcheckoutする前に代替のローカルブランチ名を指定するためにb
パラメータを追加してください。

ローカルリポジトリに同じブランチ名を持つ複数のリモートがある場合は、どのリモートとブランチをローカルのコミットに対してトラッキングするかを指定してください。

将来のバージョンのGitでは、ブランチの変更や作成には
git switch
コマンドを使用することが推奨される可能性があります。Gitのswitch
コマンドはブランチ専用であり、Gitのcheckoutコマンドにはさまざまな機能があります。Irshad S.はその理由について詳しく説明しています。詳細については、興味があれば読んでみてください。
ローカルブランチをリモートにプッシュする
対応するリモートブランチを持たないローカルブランチを作成した場合、git push
コマンドを使用してブランチをリモートに送信することができます。新しいブランチをお好みのリモートに確立する最も簡単な方法は、u
パラメータを使用することです。
以前に使用したように、u
パラメータはリポジトリ名とソースブランチの引数を必要とします。ソースブランチ名にHEAD
だけを指定することで、Gitは現在のローカルブランチ名をリモートの名前として使用することができます。この場合、NewBranch
です。

HEAD
は現在のブランチを指すショートカットです。他のブランチをリモートにプッシュしてトラッキングを確立するには、HEAD
の代わりにブランチ名を使用します。
時々、現在のローカルブランチの名前がリモートブランチの名前と一致しない場合があります。異なる名前を使用する場合は、ソースの後にコロンで接続した希望のブランチ名を指定します。

次のステップと追加のGitリソース
Git、リモートの管理、およびgit checkoutリモートブランチの手順を確認した後、将来のストレスを回避するのに役立つ非常に重要な知識を備えています。 Gitでリモートブランチをチェックアウトする手順と共有されたベストプラクティスは、今後非常に貴重なリソースとなるでしょう。
Gitリポジトリの他の側面についてさらに深く掘り下げたい場合は、次のリソースが強くお勧めです:
- A primer on detached heads: Discover scenarios where a detached HEAD is beneficial or inadvertent, and how to handle it.
- Gitスイッチ:複数の側面を持つGitのcheckoutとは異なり、ブランチに対応するコマンドです。
Source:
https://adamtheautomator.com/git-checkout-remote-branch/