[英]How to maintain shallow clone of a set of branches in git
我想维护一个浅层,镜像,裸露的几个分支的克隆。 我将从不同项目分支的本地克隆。 例如
+------------------------------------------------------------------+
| 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的最新状态是我所坚持的(理想情况下,我希望保持一切,因为某个提交,但我明白这是不可能的)。 看来我每次都要做多个git fetch命令,这是对的吗? 有没有办法在配置文件中弹出它,以便我可以做git fetch
,它知道我的意思?
我在寻找类似复杂的Git需求时遇到了这个问题,并且完全理解这个问题是2年前的问题。 我正在回答,因为根本没有答案,而问题仍然非常有效。
Shallowness主要是fetch
属性。 因此,可以使用--depth 200
进行fetch
并保留历史记录,而无需过多的提交。
现代版的Git有--shallow-exclude
选项。 我认为这正是允许“自某次提交以来维护所有内容”的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.