如何克隆远程存储库某个分支的特定版本?
我正在使用一个非常大的 git 树(更具体地说是 Linux 内核)。在许多情况下,我需要将内核代码带到网络和文件系统非常有限的机器上。
通常我只需要获取某个分支上某个提交的代码,而不需要所有领先的历史记录。
因此,经过一番挖掘(例如,此处、此处和其他地方)后,我将范围缩小为:
$ 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,并且我还需要估计提交距离分支提示有多远,并将这个数字用作“深度”参数(我使用示例中为 20)。
所以我的问题是:如何在没有上述缺点的情况下直接克隆远程存储库某个分支的特定版本?
我发现答案说它无法完成,但它们已经过时了。也许较新的 git 允许这样做?
除非服务器有特定的设置,否则这似乎是不可能的。
uploadpack.allowReachableSHA1InWant
请参阅我在 Git 2.5 及更高版本中提到的“从远程 Git 存储库检索特定提交”。
git fetch --depth=1 ../testrepo/.git $SHA1
git cat-file commit $SHA1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句