repo切换新分支与同步代码
参考 https://blog.csdn.net/weixue9/article/details/100572970
在切换到新的分支的时候会有两种情况,一种是你再下载源码时已经存在的分支,一种是下载之后才添加的分支,如果是第一种情况则直接执行下面第二步即可,如果是第二种情况需要先执行第一步才可以。
1、如果新切换的分支是后来才加入的,这个时候需要先同步下我们下载过的分支,执行下面内容:
-
~/bin/repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r47
-
~/bin/repo sync
其中android-9.0.0_r47是你已下载的分支的名称,执行上面内容后,本地会更新与远程仓库之间的分支及提交内容的查验,否则你直接执行下面第二步进行切换分支的时候,根本查看不到我们想要切换的分支,等上面的内容更新完之后就可以执行下面的操作步骤了。(其中~/bin/repo是我们下载repo时的下载路径)
2、首先在终端中进入我们存放源码的文件夹,然后执行下面命令:
-
cd .repo/manifests
-
git branch -a | cut -d / -f 3
执行完上面命令后就会在终端里列出本地存放的已有的所有分支信息(该信息只是同步到你上次下载时的信息,如果需要最新信息需要先进行上面第一步的操作),之后执行下面的内容进行新的分支的切换及代码的同步。
-
~/bin/repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r2
-
~/bin/repo sync
如上,我准备切换到新的分支android-10.0.0_r2,等待下载完成即可。
注意事项:
如果本地版本库中的源代码有一些改动,执行上述命令后,会出现如下提示:
-
build/: discarding 1 commits
-
dalvik/: discarding 2 commits
-
kernel/: discarding 6 commits
-
packages/apps/Calendar/: discarding 1 commits
-
packages/apps/Contacts/: discarding 2 commits
-
packages/apps/Mms/: discarding 1 commits
-
packages/apps/Music/: discarding 1 commits
-
packages/apps/Phone/: discarding 1 commits
-
vendor/embinux/support-tools/: discarding 1 commits
这时需要使用下面的操作命令:
~/bin/repo forall -c git reset --hard
成功后再次执行上面的切换分支及同步代码的命令就可以了