我觉得我对git有很好的理解,但当涉及repo命令时,我就迷失了方向。我已经读到过repo命令,但我仍然不确定它是如何将所有东西联系在一起的。
我最大的问题是,我是否可以将当前的分支从姜饼更改为ICS,并可能将其更改回来?
我看到命令:
repo init -u https://android.googlesource.com/platform/manifest
据我所知,这将创建一个包含主分支的repo。如果我想指定分支,我可以这样做:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
下载大约是8 8GB,我相信,所以如果他们共享代码,我不想把我的repo给吹了。有没有办法在repo中切换分支?
发布于 2012-07-18 03:56:37
如果您使用不同的分支再次运行repo init
,您可以简单地使用repo sync
,它将不会再次下载完整的源代码。
发布于 2012-02-24 18:42:11
repo -b参数指定应该签出的.repo/manifests git存储库的分支。此存储库中的default.xml文件定义了每个其他git存储库(项目)应该在哪个分支上。
似乎repo是以这样一种方式编写的,如果您再次检查另一个清单分支是repo sync,它将再次通过网络拉取所有代码。
您可以运行repo forall -c 'git checkout branch_name'
,它将签出当前清单中声明的所有项目的指定分支,但如果在gingerbread和ics之间添加/删除了项目(确实存在),那么您将不会获得这些项目的代码。
在.repo/manifests存储库中运行git checkout分支名,然后运行repo sync,可以节省一些网络开销。
否则,由于repo的限制,唯一真正的方法是维护aosp的两个工作副本或准备重新同步。
https://stackoverflow.com/questions/9099505
复制相似问题