17

Github に 2 つのブランチを持つリポジトリがあります:masterdevelop.

リポジトリをクローンして実行すると、ブランチ$ git branchのみが表示されます。 実行すると、すべてのリモート ブランチが表示されます。master
$ git branch -a

を実行する$ git checkout developと、次のメッセージが表示されます。

リモートブランチ開発をオリジンから追跡するためのブランチ開発セットアップ。
新しいブランチ 'develop' に切り替えました

実際に何が起こったのですか?を実行したとき、またはdevelop実行したときにリモート ブランチからのコミットがフェッチされましたか?$ git clone remote-url$ git checkout develop

$ git pull origin developチェックアウト後に を行う必要がありますdevelopか、それともすでに完了していますか?

cloneリモートに複数のブランチがある場合の仕組みを理解してください。

4

5 に答える 5

13

git cloneすべてのリモート ブランチを取得しますが、1 つのローカル ブランチ のみを作成masterします。を実行するgit branch -aと、次のように表示されます。

$ git branch -a
* master
  remotes/origin/HEAD
  remotes/origin/develop
  remotes/origin/master

これは、1 つのローカル ブランチmasterと複数のリモート ブランチがあることを意味します。を実行するgit checkout developと、git は別のローカル ブランチを作成してリモート ブランチdevelop追跡origin/developします。は追跡ブランチの同期を試みるため、 の後にgit別の操作を行う必要はありません。pullcheck out

ローカル ブランチとリモート ブランチの用語がわかりにくい場合は、このドキュメントを参照してください。それらを理解するのに役立ついくつかの素晴らしい図と、さらにコミットを行うときにローカルブランチとリモートブランチがどのように移動するかを示しています.

この回答が役立つ場合があります: Git ですべてのリモート ブランチを複製する方法は? 、最初の答え。

于 2013-05-07T20:25:29.840 に答える
1

リポジトリをクローンすると、すべてのブランチと、それらのブランチからアクセスできるすべてのコミットが取得されます。

ただし、マスター以外のブランチのローカル ブランチを取得することはできません。他のものはリモート ブランチ (remotes/origin/development) としてあり、必要なときにいつでもチェックアウトできます。git は、リモート ブランチと、チェックアウト時に作成したローカル ブランチとの間の追跡を設定します。

于 2013-05-07T20:27:46.830 に答える