Android repo命令和切换分支

时间:2012-02-01 16:33:26

标签: android repository android-source

我觉得我对git非常了解,但是当谈到repo命令时,我迷路了。我已经阅读了有关repo命令的内容,但我仍然不确定它是如何将所有内容联系在一起的。

我最大的问题是,我可以将目前的分支机构从姜饼改为ICS并可能改回来吗?

我看到命令:

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

根据我的理解,这将创建一个主分支的回购。如果我想指定分支,我可以这样做:

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

我认为,下载大约是8GB,所以如果他们共享代码,我不想让我的回购消失。有没有办法在回购中切换分支?

2 个答案:

答案 0 :(得分:44)

如果您第二次使用其他分支运行repo init,则只需repo sync,它就不会再次下载整个源代码。

答案 1 :(得分:5)

repo -b参数指定应该检出的.repo / manifests git存储库的分支。此存储库中的default.xml文件定义了其他每个git repositiories(项目)应该在哪个分支上。

似乎repo是以这样的方式编写的:如果你检查另一个清单分支再次进行repo sync,它将通过网络再次提取所有代码。

您可以运行repo forall -c 'git checkout branch_name'来检查当前清单中声明的​​所有项目的指定分支,但是如果在姜饼和ics(有)之间添加/删除了项目,那么您将不会获取这些项目的代码。

在.repo / manifests存储库中运行git checkout branchname,然后运行repo sync可以节省一些网络开销。

否则,由于repo的限制,唯一真正的方法是维护aosp的两个工作副本或准备重新同步。