リモート Git ブランチをチェックアウトする方法
公開: 2023-01-23開発チームが Git を使用している場合、最終的には、他の人の作業をリモート リポジトリからブランチとしてチェックアウトする必要があります。 Git のほとんどのブランチ アクションと同様に、リモート ブランチへの切り替えは実際には非常に簡単です。
Git、ブランチ、およびリモート
地元の支店を探す
リモート ブランチのチェックアウト
名前の競合の処理
複数のリモート リポジトリの処理
チェックアウトする前に
Git、ブランチ、およびリモート
Git の哲学は、頻繁に分岐することです。 分岐により、メイン コード ベースを変更せずに開発を行うことができます。 テスト済みの新しいコードの準備が整ったら、新しいブランチを別のブランチにマージします。 通常、これはメインまたはマスター ブランチですが、任意の 2 つのブランチをマージできます。
この柔軟性と、Git がブランチとマージを処理する軽量で高速な方法のために、ブランチングは変換されました。 古いバージョン管理システムでは、分岐が重要でした。 分岐とマージは遅く、エラーが発生しやすいものでした。 Git は、さまざまなワークフローを支えるために使用される簡単で高速な分岐を開発者に提供しました。
Git を使用する開発チームの一員として働いたりボランティアをしたりする場合、各ソフトウェア エンジニアのコンピューターから離れた「中央」の Git リポジトリを使用できます。 これは、リモート リポジトリ、または単に「リモート」と呼ばれます。 プッシュを実行したときに、ローカル リポジトリへのコミットと変更が送信される場所です。
もちろん、それは他の開発者も行っていることです。 これにより、コラボレーションが容易になります。 別の開発者の作業にアクセスする必要がある場合は、リモート リポジトリのブランチからコードを取得するだけです。 彼らがあなたの作品にアクセスする必要がある場合、ローカル ブランチの 1 つを追跡するリポジトリのブランチからコードを取得します。
Git では、開発プロジェクトは複数のリモートを持つことができます。 ただし、ローカル ブランチは 1 つのリモート ブランチしか追跡できません。 そのため、適切なリモートで作業している限り、複数のリモートを持つリモート ブランチをチェックアウトすることは、単一のリモートを使用することと同じです。
地元の支店を探す
名前の競合を避ける必要があります。 チェックアウトしようとしているリモート ブランチとたまたま同じ名前のローカル ブランチがある場合、2 つのオプションがあります。 ローカル ブランチの名前を変更して、リモート ブランチをチェックアウトできます。 そうすれば、リモート ブランチを追跡するローカル ブランチは、リモート ブランチと同じ名前になります。 または、リモート ブランチをチェックアウトし、新しい名前でローカル追跡ブランチを作成するように Git に指示することもできます。
ローカル リポジトリ内のブランチの名前を確認するには、 git branch
コマンドを使用します。
gitブランチ
このローカル リポジトリには、マスター ブランチとその他の 3 つのブランチがあります。 アスタリスクは、現在のブランチを示します。 ブランチからブランチに移動するには、作業したいブランチをチェックアウトする必要があります。
git チェックアウトの新機能
git ステータス
最初のコマンドは、「new-feature」が現在のブランチになるように、ブランチを変更します。 git status
コマンドはそれを検証します。
ブランチ間を行ったり来たりして、新しい変更をコミットし、リモートから更新をプルし、ローカルの更新をリモートにプッシュできます。
関連:個別の Git ブランチを更新および維持する方法
リモート ブランチのチェックアウト
私たちのマシンには存在しないリモートリポジトリにブランチがあります。 Mary という開発者が新しい機能を作成しました。 そのリモート ブランチに切り替えて、そのバージョンのソフトウェアをローカルでビルドできるようにします。
fetch
を実行すると、Git はリモート リポジトリからメタデータを取得します。
git フェッチ
Mary がブランチをリモート リポジトリにプッシュして以来、これが最初のfetch
であるため、「origin/mary-feature」という名前の新しいブランチがあることがわかります。 プロジェクトに追加される最初のリモート リポジトリのデフォルト名は「origin」です。
このメッセージが表示されるかどうかに関係なく、リモート リポジトリ内のブランチを一覧表示するように Git にいつでも要求できます。
-r
(リモート) オプションは、リモート リポジトリにあるブランチについてレポートするように Git に指示します。
git ブランチ -r
ここで注意すべき点は、Git がリモートのメタデータのローカルコピーをチェックしていることです。 そのため、メタデータのローカル コピーが最新であることを確認するためにgit fetch
コマンドを使用しました。
必要なブランチを見つけたら、先に進んでチェックアウトできます。 -b
(ブランチ) オプションを指定してgit checkout
コマンドを使用し、その後にローカル ブランチに使用する名前、リモート ブランチの名前を続けます。
git checkout -b mary-feature origin/mary-feature
リモート ブランチをチェックアウトし、リモート ブランチの変更を追跡するローカル ブランチを作成したことがわかります。
gitブランチ
新しいローカル ブランチは、現在の作業ブランチです。
名前の競合の処理
リモート ブランチと同じ名前のローカル ブランチがある場合は、リモート ブランチをチェックアウトする前にローカル ブランチの名前を変更するか、リモート ブランチをチェックアウトして別のローカル ブランチ名を指定することができます。
リモート ブランチを別の名前のローカル ブランチにチェックアウトするには、前に使用したのと同じコマンドを使用して、新しいローカル ブランチ名を選択します。
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」ブランチをチェックアウトできるようになりました。
複数のリモート リポジトリの処理
複数のリモート リポジトリが構成されている場合は、リモート ブランチをチェックアウトするときに、適切なリポジトリで作業していることに注意する必要があります。
リモート リポジトリを一覧表示するには、 remote
コマンドに-v
(表示) オプションを付けて使用します。
git リモート -v
利用可能なすべてのブランチを表示するには、すべてのリモートからメタデータをフェッチしてから、リモート ブランチを一覧表示する必要があります。
git フェッチ --all
git ブランチ --all
必要なブランチが「origin」リモートにあることがわかります。 チェックアウトするコマンドは、既に使用したのと同じ形式です。 リモート名「origin」とブランチ名「mary-feature」を指定する必要があります。
git checkout -b mary-feature origin/mary-feature
関連: Git リモートを切り替え、追加、および削除する方法
チェックアウトする前に
チェックアウトする前に、いくつかのことを心に留めておいてください。
名前の競合を避けるようにしてください。 リモート ブランチと同じ名前のローカル ブランチがある場合は、ローカル ブランチの名前を変更するか、別の名前のブランチを作成してリモート ブランチを追跡するかを決定します。
複数のリモート リポジトリを使用する場合は、正しいリモートを使用していることを確認してください。
関連: Git rebase: 知っておくべきことすべて