我已经用以下命令下载了整个工作树:
repo init -u https://android.googlesource.com/platform/manifest
repo sync -j8成功同步后,我想将工作树切换到android 2.3.7。你看,当"repo init“时,我没有指定带有"-b”参数的分支。所以我想所有的标签信息都应该下载,我可以通过下面的命令很容易地切换到android 2.3.7:
repo forall -c git checkout android-2.3.7_r1但它会产生许多错误,如:
error: pathspec 'android-2.3.7_r1' did not match any file(s) known to git.那么我怎么才能在没有"repo init -b android- 2.3.7 _r1“和"repo sync”的情况下切换到android 2.3.7呢?
发布于 2013-01-16 15:56:03
您无法使用repo forall解决此问题。
让我们假设您当前的Android树是干净的-没有本地更改或提交,即repo status没有显示任何内容。
要正确切换Android版本,您只需更改清单存储库的分支即可。首先确定具有不同Android版本清单的可用分支:
cd $ANDROID_ROOT
cd .repo/manifests
git branch -av # see all available branches on origin选择一个版本并
cd $ANDROID_ROOT
repo init -b <my_selected_android_version>这种带有-b的选择性repo init (没有-u)只会更新清单分支,否则不会接触到你的树。
现在,简单地同步它:
repo sync -j8一段时间后,您的Android树将切换到另一个版本。
此操作的速度主要取决于新旧安卓版本之间default.xml清单文件的差异-因为如果在新清单中添加某个git存储库,它将花费时间克隆它。如果某个存储库被删除了,它实际上会把它吹走。
但是,总的来说,这种方法仍然比从头开始初始化全新的Android树要快得多。
发布于 2016-03-31 16:31:30
如果您所在的分支和要切换到的分支具有相同的manifest.xml文件,则可以使用以下命令来执行此操作。
repo forall -c git fetch aosp --tags
repo forall -c git checkout -b john5.1.1_r14_api22 android-5.1.1_r14另请参阅http://johnliao52.github.io/2016/03/27/git-repo-skills.html中的详细信息
https://stackoverflow.com/questions/14008113
复制相似问题