git 自特定提交以来的浅克隆

git shallow clone since specific commit

我想克隆一个历史悠久的存储库。我只对一些短暂的尚未合并的功能分支和 master.

感兴趣

为了不让自己与所有过去的历史和合并的分支混淆,我想从特定的提交 SHA 开始做一个浅克隆。

但是,到目前为止,我只找到了关于如何进行浅层克隆的文档,这些克隆仅包括最后的 n 提交(--depth) resp,自特定日期以来的提交(--shallow-since).

有没有办法指定从给定提交开始的浅克隆?

没有,这有点遗憾,因为 Git 很容易实现。

通常使用 --depth 就足够了:从您认为足够的深度开始,如果不够,请根据需要使用 --deepen--depth 重复获取。

在该特殊提交处创建一个分支然后 git clone --single-branch 怎么样?

仍然不可能,但是如果我们知道我们想要创建浅克隆的提交的日期时间,我们可以使用 git --shallow-since=<date>,例如,如果我们知道提交 X 被推送到“2021-12- 19T20:37:05Z",我们可以:

git clone --shallow-since="2021-12-19T20:37:05Z" <url>

只会提供来自提交 X

的历史记录