【发布时间】:2017-06-27 00:58:04
【问题描述】:
如何克隆远程存储库某个分支的特定版本?
我正在使用一个非常大的 git 树(更具体地说,是 Linux 内核)。 在很多情况下,我需要将内核代码带到网络和文件系统非常有限的机器上。
通常我只需要获取某个分支上某个提交的代码,而不需要所有主要历史记录。
所以,经过一番挖掘(例如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,并且我还需要估计提交距离分支提示多远并使用它number 作为“深度”参数(我在示例中使用了 20)。
所以我的问题是:如何在没有上述缺点的情况下直接克隆远程存储库某个分支的特定版本?
我发现答案说无法完成,但它们已经过时了。 也许一个较新的 git 有一些允许它的东西?
【问题讨论】:
标签: git git-clone git-checkout git-reset