我想维护几个分支的浅、镜像、裸克隆。我将从本地克隆不同的项目分支。例如
+------------------------------------------------------------------+
| repo1: server1:original-repo.git branches: A, B, C, D, E |
+------------------------------------------------------------------+
↓
+------------------------------------------------------------------+
| repo2: server2:shallow-bare-selective-clone branches: A, B only |
+------------------------------------------------------------------+
↓ ↓
+-------------------------------+ +--------------------------------+
| repo3: server2:clone repo2, A | | repo4: server2:clone repo2, B |
+-------------------------------+ +--------------------------------+
所以我可以像这样制作repo2
git clone --bare --mirror --depth 1 server1:repo1 repo2
cd repo2
git fetch --depth 200 origin A
git fetch --depth 200 origin B
然后我认为 repo3 和 4 真的很容易 - 他们可以从 repo2 克隆他们想要的一切,他们会受到 repo2 浅度的限制。
但是,让 repo2 与 repo1 保持同步,同时保持其浅薄性是我所坚持的(理想情况下,我想维护自某个提交以来的所有内容,但我知道这是不可能的)。看来我每次都必须执行多个 git fetch 命令,对吗?有没有办法将其弹出到配置文件中,以便我可以这样做git fetch
它知道我的意思吗?
我在搜索类似的复杂 Git 需求时遇到了这个问题,并且完全理解这个问题已经有 2 年历史了。我回答是因为根本没有答案,而问题仍然非常有效。
浅薄主要是fetch
财产。所以可以这样做fetch
with --depth 200
并在没有太旧的提交的情况下维护历史记录。
现代版本的 Git 有--shallow-exclude
选项。我认为这正是允许“维护自某个提交以来的所有内容”的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)