Git 不同分支的镜子

Git Mirror with Different Branches

我正在研究 Android 源代码,我使用镜像让同步时间更快。

$ mkdir mirror
$ cd mirror
$ repo init branchA --mirror
$ repo sync

然后每次需要同步branchA的时候就可以使用这个镜像

$ repo init branchA --reference=/.../mirror
$ repo sync

但是现在,我有一个问题,我还有其他与branchA相关的分支。例如,branchB 是基于 branchA,而 banchC 是基于 branchB。在这种情况下,我是否需要三个不同的镜像?

如果我只同步branchC的镜像,我可以用这个镜像同步branchA和branchB吗?

如果我只同步branchA的镜像,我可以用这个镜像同步branchB和branchC吗?

你只需要一面镜子。

Repo 的镜像仓库已完全克隆。它们包含从所有分支、标签和其他引用可访问的每个 git 对象。 repo sync 的选项 -c,仅下载当前 ref 及其对象,在镜像存储库中无效。

即使镜像只有一个分支的数据,您仍然可以将其作为参考来下载其他参考。丢失的refs和objects,在镜像中找不到,将从远程服务器下载。您不会错过工作存储库中的任何内容。