gpt4 book ai didi

git - 如何在 git 中维护一组分支的浅克隆

转载 作者:太空狗 更新时间:2023-10-29 13:47:03 25 4
gpt4 key购买 nike

我想维护几个分支的浅层、镜像、裸克隆。我将从本地克隆不同的项目分支。例如

+------------------------------------------------------------------+
| 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 命令,对吗?有没有办法在配置文件中 pop 它,这样我就可以执行 git fetch 并且它知道我的意思?

最佳答案

我在搜索类似的复杂 Git 需求时遇到了这个问题,并且完全理解这个问题已有 2 年历史了。我回答是因为根本没有答案,而问题仍然非常有效。

浅度主要是 fetch 属性。因此可以使用 --depth 200 执行 fetch 并在没有太旧提交的情况下维护历史记录。

现代版本的 Git 有 --shallow-exclude 选项。我认为这正是允许“自某个提交以来维护所有内容”的原因。

关于git - 如何在 git 中维护一组分支的浅克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28645657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com