1. ホーム
  2. git

[解決済み] リモートのGitブランチをチェックアウトするには?

2022-03-13 13:04:26

質問

というブランチをプッシュしました。 testgit push origin test を共有リポジトリにコピーします。を持つブランチを見ることができます。 git branch -r .

今度はリモートをチェックアウトしようとしています。 test ブランチを作成します。

試してみました。

  • git checkout test 何もしない

  • git checkout origin/test 与える * (no branch) . これは紛らわしいですね。どうすれば、quot;no branch"になるのでしょうか?

リモートの Git ブランチをチェックアウトするには?

解決方法は?

リモートリポジトリが1つ設定されているか、複数設定されているかによって、回答が分かれています。その理由は、リモートが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

また、下の画像は、フェッチの仕組みやプルとの違いを共有するために作成したものです。

Git 2.23より前のバージョン

git switch は、Git 2.23 で追加されたもので、これ以前は git checkout は、ブランチの切り替えに使用されていました。

リモートリポジトリを1つだけにしてチェックアウトすること。

git checkout test

複数のリモートリポジトリが設定されている場合、少し長くなります。

git checkout -b test <name of remote>/test