ウェブサイト検索

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


概要: リモート リポジトリからブランチをチェックアウトするには、git fetch コマンドを使用してから、git branch -r を使用してリモート ブランチを一覧表示します。必要なブランチを選択し、git checkout -b new-branch-name origin/remote-branch-name の形式のコマンドを使用します。複数のリポジトリを使用する場合は、checkout コマンドの origin 部分を、ブランチをチェックアウトするリモートの名前に変更します。

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

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

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

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

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

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

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

地元の支店を探す

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

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

git branch

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

git checkout new-feature
git status

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

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

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

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

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

git fetch

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

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

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

git branch -r

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

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

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

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

git branch

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

名前の競合の処理

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

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

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

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

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

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

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

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

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

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

git remote -v

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

git fetch --all
git branch --all

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

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

チェックアウトする前に

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

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

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