Git 远程仓库的浅克隆特定版本

Git shallow clone specific version of remote repository

如何克隆远程存储库特定分支的特定版本?

我正在使用一个非常大的 git 树(Linux 内核,更具体地说)。 在很多情况下,我需要将内核代码带到网络和文件系统非常有限的机器上。

通常我只需要获取某个分支上某个提交的代码,w/o所有领先的历史。

所以,经过一些挖掘(例如 here, here,以及其他地方),我将范围缩小到:

$ git clone --branch <remote-branch-name> --single-branch --depth 20 http://some-host:8080/some-git-repo.git
$ cd some-git-repo
$ git reset --hard <commit-ID-that-I-need>

优点:我克隆了我需要的唯一分支,并且克隆了非常有限的历史记录。

缺点:在克隆之前,我需要实际找出哪个分支有我需要的提交ID,我还需要估计提交离分支提示并使用此数字作为 "depth" 参数(我在示例中使用 20)。

所以我的问题是:如何直接克隆远程存储库的某个分支的特定版本,w/o上述缺点?

我找到了说无法完成的答案,但它们已经过时了。 也许较新的 git 有允许的东西?

这似乎不可能除非服务器有特定的设置。

uploadpack.allowReachableSHA1InWant

参见我为 Git 2.5 及更高版本提到的“Retrieve specific commit from a remote Git repository”。

git fetch --depth=1 ../testrepo/.git $SHA1
git cat-file commit $SHA1