リモート Git ブランチをチェックアウトする方法

公開: 2023-01-23
bash プロンプトを表示している Linux ラップトップ
Fatmawati achmad zaenuri/Shutterstock.com
リモート リポジトリからブランチをチェックアウトするには、「git fetch」コマンドを使用してから、「git branch -r」を使用してリモート ブランチを一覧表示します。 必要なブランチを選択し、「git checkout -b new-branch-name origin/remote-branch-name」という形式のコマンドを使用します。 複数のリポジトリを使用する場合は、checkout コマンドの「origin」の部分を、ブランチをチェックアウトするリモートの名前に変更します。

開発チームが Git を使用している場合、最終的には、他の人の作業をリモート リポジトリからブランチとしてチェックアウトする必要があります。 Git のほとんどのブランチ アクションと同様に、リモート ブランチへの切り替えは実際には非常に簡単です。

目次

Git、ブランチ、およびリモート
地元の支店を探す
リモート ブランチのチェックアウト
名前の競合の処理
複数のリモート リポジトリの処理
チェックアウトする前に

Git、ブランチ、およびリモート

Git の哲学は、頻繁に分岐することです。 分岐により、メイン コード ベースを変更せずに開発を行うことができます。 テスト済みの新しいコードの準備が整ったら、新しいブランチを別のブランチにマージします。 通常、これはメインまたはマスター ブランチですが、任意の 2 つのブランチをマージできます。

この柔軟性と、Git がブランチとマージを処理する軽量で高速な方法のために、ブランチングは変換されました。 古いバージョン管理システムでは、分岐が重要でした。 分岐とマージは遅く、エラーが発生しやすいものでした。 Git は、さまざまなワークフローを支えるために使用される簡単で高速な分岐を開発者に提供しました。

Git を使用する開発チームの一員として働いたりボランティアをしたりする場合、各ソフトウェア エンジニアのコンピューターから離れた「中央」の Git リポジトリを使用できます。 これは、リモート リポジトリ、または単に「リモート」と呼ばれます。 プッシュを実行したときに、ローカル リポジトリへのコミットと変更が送信される場所です。

もちろん、それは他の開発者も行っていることです。 これにより、コラボレーションが容易になります。 別の開発者の作業にアクセスする必要がある場合は、リモート リポジトリのブランチからコードを取得するだけです。 彼らがあなたの作品にアクセスする必要がある場合、ローカル ブランチの 1 つを追跡するリポジトリのブランチからコードを取得します。

Git では、開発プロジェクトは複数のリモートを持つことができます。 ただし、ローカル ブランチは 1 つのリモート ブランチしか追跡できません。 そのため、適切なリモートで作業している限り、複数のリモートを持つリモート ブランチをチェックアウトすることは、単一のリモートを使用することと同じです。

地元の支店を探す

名前の競合を避ける必要があります。 チェックアウトしようとしているリモート ブランチとたまたま同じ名前のローカル ブランチがある場合、2 つのオプションがあります。 ローカル ブランチの名前を変更して、リモート ブランチをチェックアウトできます。 そうすれば、リモート ブランチを追跡するローカル ブランチは、リモート ブランチと同じ名前になります。 または、リモート ブランチをチェックアウトし、新しい名前でローカル追跡ブランチを作成するように Git に指示することもできます。

ローカル リポジトリ内のブランチの名前を確認するには、 git branchコマンドを使用します。

 gitブランチ

git branch コマンドを使用してローカル ブランチを一覧表示する

このローカル リポジトリには、マスター ブランチとその他の 3 つのブランチがあります。 アスタリスクは、現在のブランチを示します。 ブランチからブランチに移動するには、作業したいブランチをチェックアウトする必要があります。

 git チェックアウトの新機能
git ステータス

git checkout コマンドでローカル ブランチをチェックアウトする

最初のコマンドは、「new-feature」が現在のブランチになるように、ブランチを変更します。 git statusコマンドはそれを検証します。

ブランチ間を行ったり来たりして、新しい変更をコミットし、リモートから更新をプルし、ローカルの更新をリモートにプッシュできます。

関連:個別の Git ブランチを更新および維持する方法

リモート ブランチのチェックアウト

私たちのマシンには存在しないリモートリポジトリにブランチがあります。 Mary という開発者が新しい機能を作成しました。 そのリモート ブランチに切り替えて、そのバージョンのソフトウェアをローカルでビルドできるようにします。

fetchを実行すると、Git はリモート リポジトリからメタデータを取得します。

 git フェッチ

git fetch コマンドを使用してリモート リポジトリに関するメタデータを取得する

Mary がブランチをリモート リポジトリにプッシュして以来、これが最初のfetchであるため、「origin/mary-feature」という名前の新しいブランチがあることがわかります。 プロジェクトに追加される最初のリモート リポジトリのデフォルト名は「origin」です。

このメッセージが表示されるかどうかに関係なく、リモート リポジトリ内のブランチを一覧表示するように Git にいつでも要求できます。

-r (リモート) オプションは、リモート リポジトリにあるブランチについてレポートするように Git に指示します。

 git ブランチ -r 

git branch -r コマンドを使用してリモート ブランチを一覧表示する

ここで注意すべき点は、Git がリモートのメタデータのローカルコピーをチェックしていることです。 そのため、メタデータのローカル コピーが最新であることを確認するためにgit fetchコマンドを使用しました。

チームに適した Git ワークフローとブランチ モデルを選択する方法
関連チームに適した Git ワークフローと分岐モデルを選択する方法

必要なブランチを見つけたら、先に進んでチェックアウトできます。 -b (ブランチ) オプションを指定してgit checkoutコマンドを使用し、その後にローカル ブランチに使用する名前、リモート ブランチの名前を続けます。

 git checkout -b mary-feature origin/mary-feature 

git checkout -b コマンドでリモート ブランチをチェックアウトする

リモート ブランチをチェックアウトし、リモート ブランチの変更を追跡するローカル ブランチを作成したことがわかります。

 gitブランチ

git branch コマンドを使用してローカル ブランチを一覧表示し、新しく作成されたリモート ブランチのコピーを現在のブランチとして選択する

新しいローカル ブランチは、現在の作業ブランチです。

名前の競合の処理

リモート ブランチと同じ名前のローカル ブランチがある場合は、リモート ブランチをチェックアウトする前にローカル ブランチの名前を変更するか、リモート ブランチをチェックアウトして別のローカル ブランチ名を指定することができます。

リモート ブランチを別の名前のローカル ブランチにチェックアウトするには、前に使用したのと同じコマンドを使用して、新しいローカル ブランチ名を選択します。

 git checkout -b mary-test origin/mary-feature 

リモート ブランチとは異なる名前を持つローカル ブランチで git checkout -b コマンドを使用してリモート ブランチをチェックアウトする

これにより、そのブランチへのローカル コミットを追跡する「mary-test」というローカル ブランチが作成されます。 プッシュは、リモートの「origin/mary-feature」ブランチに送られます。

これはおそらく、ローカル名の競合を処理する最良の方法です。 ローカル ブランチとリモート ブランチの名前を同じにしたい場合は、リモート ブランチをチェックアウトする前に、ローカル ブランチの名前を変更する必要があります。 Git では、ブランチの名前を変更するのは簡単です。

 git branch -m mary-feature old-mary-branch 

git branch -m コマンドでブランチの名前を変更する

これで、リモートの「origin/mary-feature」ブランチをチェックアウトできるようになりました。

複数のリモート リポジトリの処理

複数のリモート リポジトリが構成されている場合は、リモート ブランチをチェックアウトするときに、適切なリポジトリで作業していることに注意する必要があります。

リモート リポジトリを一覧表示するには、 remoteコマンドに-v (表示) オプションを付けて使用します。

 git リモート -v 

git remote -v コマンドを使用してリモート リポジトリを一覧表示する

利用可能なすべてのブランチを表示するには、すべてのリモートからメタデータをフェッチしてから、リモート ブランチを一覧表示する必要があります。

 git フェッチ --all
 git ブランチ --all 

git fetch --all を使用してローカル メタデータを更新し、git branch --all を使用してローカルおよびリモートのすべてのブランチを一覧表示する

必要なブランチが「origin」リモートにあることがわかります。 チェックアウトするコマンドは、既に使用したのと同じ形式です。 リモート名「origin」とブランチ名「mary-feature」を指定する必要があります。

 git checkout -b mary-feature origin/mary-feature 

リモート名とブランチ名を使用して、git checkout -b コマンドでリモート ブランチをチェックアウトする

関連: Git リモートを切り替え、追加、および削除する方法

チェックアウトする前に

チェックアウトする前に、いくつかのことを心に留めておいてください。

名前の競合を避けるようにしてください。 リモート ブランチと同じ名前のローカル ブランチがある場合は、ローカル ブランチの名前を変更するか、別の名前のブランチを作成してリモート ブランチを追跡するかを決定します。

複数のリモート リポジトリを使用する場合は、正しいリモートを使用していることを確認してください。

関連: Git rebase: 知っておくべきことすべて