4

git cloneいくつかのリポジトリを作成すると、そこからすべてのブランチが取得されます。

git clone https://github.com/android/platform_build.git build1
cd build1/ && git branch -a && cd ..

次に、build1ミラーとして使用してクローンを作成すると、すべてのリモートブランチが表示されません(build1のローカルマスターブランチのみが表示されます)

git clone build1 build2
cd build2 && git branch -a && cd ..

リモートブランチのリモートをチェックアウトするにはどうすればよいですか?

コマンドを使用してbuild1ミラーのすべてのリモートブランチをチェックアウトできることを知っています

cd build1 && for remote in `git branch -r `; do git branch --track $remote; done

すべてのリモートgitブランチをローカルブランチとして追跡し ますが、build1ディレクトリにアクセスできない場合はどうなりますか?

また、git ls-remote originすべてのリモート参照を表示するコマンドがありますが、リモートブランチのそれらのリモートをチェックアウトするためのエレガントな方法はありますか?

4

1 に答える 1

1

にクローンbuild1を作成した後build2build1build2'soriginであり、「リモート」ブランチが存在する場所build2については何も知りません。1つの解決策は、の構成にリモートとしてhttps://github.com/android/platform_build.git追加することです。と呼ばれるリモコンを追加するには:https://github.com/android/platform_build.gitbuild2github

git remote add github https://github.com/android/platform_build.git

次に、を実行しfetchてリモートブランチを取得します。

git fetch github

これで、実行すると、で接頭辞が付いたブランチに対応するgit branch -a接頭辞が付いたブランチが表示されます。remotes/github/remotes/originbuild1

一方、の観点からリモートブランチを追跡しているブランチを含め、build2のローカルブランチごとにリモートブランチを用意する必要があります。たとえば、githubに名前の付いたブランチがある場合、はのように表示されます。と呼ばれるリモートブランチを追跡するようにローカルブランチを設定する場合は、も必要です。次に、がgithubから変更をフェッチ/マージして更新されると、それらの変更は/の後に表示されます。build1build1fooremotes/origin/foobuild1build1foobuild2remotes/origin/foofoobuild1foobuild2fetchpull

于 2012-05-14T12:50:49.813 に答える