Android repo 命令和切换分支

问题描述 投票:0回答:2

我觉得我对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,所以如果他们共享代码,我不想毁掉我的存储库。有没有办法在仓库中切换分支?

android repository android-source
2个回答
61
投票

如果您使用不同的分支第二次运行

repo init
,您可以简单地
repo sync
,它不会再次下载整个源代码。


8
投票

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

似乎回购协议的编写方式是这样的:如果您再次检查另一个清单分支是否同步回购协议,它将再次通过网络拉取所有代码。

您可以运行

repo forall -c 'git checkout branch_name'
,它将检出当前清单中声明的所有项目的指定分支,但如果在姜饼和 ics 之间添加/删除了项目(确实存在),那么您将无法获得以下代码这些项目。

在 .repo/manifests 存储库中运行 git checkoutbranchname,然后运行 reposync 可能会节省一些网络开销。

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

© www.soinside.com 2019 - 2024. All rights reserved.