【发布时间】:2020-05-28 03:41:19
【问题描述】:
如何从 git 存储库克隆、获取或稀疏签出单个文件或目录或文件或目录列表,避免下载整个历史记录或至少保持历史下载最少?
为了方便人们登陆这里,这些是对其他类似问题的参考:
- How do I clone a subdirectory only of a Git repository?
- How to sparsely checkout only one single file from a git repository?
- Is it possible to do a sparse checkout without checking out the whole repository first?
这些类似的问题很久以前就被问过了,从那时起 git 就不断发展,最终导致了大量不同的答案,有些更好,有些更糟,具体取决于所考虑的 git 版本。问题在于,上述问题中没有一个答案符合所有这些问题的所有要求,这意味着您必须阅读所有答案并在脑海中编制自己的答案,最终满足所有要求。
这里的这个问题扩展了前面提到的问题,提出了比所有其他问题加起来更灵活和更严格的要求。所以,再一次:
如何从 git 存储库克隆、获取或稀疏签出单个文件或目录或文件或目录列表,避免下载整个历史记录或至少保持历史下载最少?
【问题讨论】:
-
@phd :不,不是真的。作为您提到的答案的一部分,我们可以看到的功能拉动了所有分支的整个历史记录。我的实现只提取了一个分支的历史,而 AFAIK 只提取了历史的一角。
-
@phd :您的第二条评论的链接已损坏。
-
链接的副本有很多答案。提到了
git clone --depth以及git clone --filter。第二个搜索链接对我有用。
标签: git git-checkout git-fetch revision-history git-sparse-checkout