【问题标题】:Git Mirror with Different Branches具有不同分支的 Git 镜像
【发布时间】:2018-02-06 09:21:27
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: android git branch mirror repo


    【解决方案1】:

    你只需要一面镜子。

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

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

    【讨论】:

    • 谢谢,但我还有一个关于 Mirror 尺寸的问题。如果镜像只有一个分支的数据,它也可以用来同步其他分支吗?它的大小如何?镜子的大小将取决于分支的数量?
    • @KuanlinChen 镜像提供尽可能多的数据。镜像的大小取决于它有多少 git 对象(提交、树、blob 和带注释的标签)。像分支或轻量级标签这样的 ref 本身会占用一些空间,但非常小。主要部分是可以从这些参考中访问的对象。如果 100 个分支指向同一个提交,那么镜像的大小与只有 1 个分支指向同一个提交的镜像的大小几乎相同。如果这 100 个分支非常分散,那么大小就会大得多。
    • 解释清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多