web-dev-qa-db-ja.com

Android repoコマンドとブランチの切り替え

Gitについてはかなり理解しているように感じますが、repoコマンドに関しては迷子になっています。 repoコマンドについては読みましたが、それがどのようにすべてを結び付けるのかはまだわかりません。

私の最大の質問は、現在のブランチをジンジャーブレッドからICSに変更し、場合によっては元に戻すことはできますか?

次のコマンドが表示されます。

repo init -u https://Android.googlesource.com/platform/manifest

私の理解から、これはmasterブランチでリポジトリを作成します。ブランチを指定したい場合は、次のようにできます。

repo init -u https://Android.googlesource.com/platform/manifest -b Android-4.0.1_r1

ダウンロードは約8GBだと思いますので、コードを共有する場合にリポジトリを爆破する必要はありません。リポジトリでブランチを切り替える方法はありますか?

22
woodsdog

別のブランチを使用してrepo initをもう一度実行する場合は、単純にrepo syncを実行すると、ソースコード全体が再度ダウンロードされることはありません。

46
gparent

Repo -bパラメーターは、チェックアウトする必要がある.repo/manifests gitリポジトリのブランチを指定します。このリポジトリのdefault.xmlファイルは、他のgitリポジトリ(プロジェクト)のそれぞれにあるブランチを定義します。

Repoは、別のマニフェストブランチを再度チェックアウトするとrepo syncが行われるように記述されているようで、ネットワークを介してすべてのコードが再度プルされます。

repo forall -c 'git checkout branch_name'これは、現在のマニフェストで宣言されているすべてのプロジェクトの指定されたブランチをチェックアウトしますが、Gingerbreadとics(ある場合)の間に追加/削除されたプロジェクトがある場合、これらのプロジェクトのコードは取得されません。

.repo/manifestsリポジトリでgit checkout branchnameを実行してからrepo syncを実行すると、ネットワークのオーバーヘッドを節約できる場合があります。

それ以外の場合、リポジトリの制限により、実際にそれを行う唯一の方法は、aospの2つの作業コピーを維持するか、再同期する準備をすることです。

5
aultimus