Android repo命令和切换分支

woo*_*dog 22 android repository android-source

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

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

我看到命令:

repo init -u https://android.googlesource.com/platform/manifest
Run Code Online (Sandbox Code Playgroud)

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

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
Run Code Online (Sandbox Code Playgroud)

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

gpa*_*ent 46

如果你repo init第二次使用不同的分支运行,你可以简单地repo sync再次下载整个源代码.


aul*_*mus 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的两个工作副本或准备重新同步.

  • 我意识到你几个月前发布了这个,但关于再次下载源的部分不再准确,如果是的话. (2认同)