我已经下载了整个工作树下面的命令:
repo init -u https://android.googlesource.com/platform/manifest
repo sync -j8
同步成功后,我想切换工作树到Android 2.3.7。 你看,我没有用“-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.
所以,我怎么可以切换到Android 2.3.7没有“回购初始化-b Android的2.3.7_r1”和“回购同步”了?
使用你解决不了这个问题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>
这种选择性repo init
与-b
(无-u
)将只更新清单分支,否则不会碰你的树。
现在,简单地同步它:
repo sync -j8
并在一段时间后,你的Android树将切换到另一个版本。
这种操作的速度主要是由多如何确定default.xml
,因为如果在新的清单中增加了一些git仓库,它会花时间将其克隆-清单文件的不同新旧的Android版本之间。 如果一些仓库被删除,如果将实际吹去。
但是,总的来说,这种方法还是比重新初始化全新的Android树要快得多。
如果分支你是在和你将切换到该分支下有相同的manifest.xml文件,那么你可以用下面的命令来做到这一点。
回购FORALL -c混帐取AOSP --tags回购FORALL -c git的结帐-b john5.1.1_r14_api22 Android的5.1.1_r14
又见详细http://johnliao52.github.io/2016/03/27/git-repo-skills.html