git - 只获取文件,而不是历史记录

Max*_*rch 3 git performance repository

当我跑步git pull或者git fetch,我显然检索历史和文件.对于大型项目,这需要很长时间.我想知道如何加快这个过程,对于一些项目我只对源代码而不是历史感兴趣.有没有办法告诉git我只想获取文件的当前快照而不是整个历史记录?

Joh*_*ter 9

您可能希望查看--depth选项 - git clone称为"浅层克隆".特别是,你可能想要:

git clone --depth=1 <url>
Run Code Online (Sandbox Code Playgroud)

如果项目在GitHub上,您可以随时使用下载链接.注意,使用浅层克隆有一些问题:

创建一个浅层克隆,其历史记录被截断为指定的修订数.浅存储库有许多限制(您不能克隆或获取它,也不能从中推送或插入它),但如果您只对历史悠久的大型项目的近期历史感兴趣并且希望将修补程序作为补丁发送.

但这听起来像你可以忍受的东西.

此外,正如正电子所指出的那样,你也可以这样做git archive.


小智 5

如果有像 gitweb 或 cgit 这样的 webview,你可以很好地拍摄快照。但我认为单独获取代码是不可能。因为 fetch 正在处理您的 git 对象而不是代码。

git archive --format=tar --remote=gitolite@server:repo.git HEAD | bzip2 > repo-snapshot.tar.bz2
Run Code Online (Sandbox Code Playgroud)