5

当我运行git pullor时git fetch,我显然会同时检索历史记录和文件。对于大型项目,这需要很长时间。我想知道如何加快这个过程,因为对于某些项目,我只对源代码感兴趣,而不对历史感兴趣。有没有办法告诉 git 我只想获取文件的当前快照而不是整个历史记录?

4

3 回答 3

15

您可能想查看--称为“浅克隆”中的--depth选项。git clone特别是,您可能想要:

git clone --depth=1 <url>

如果项目在 GitHub 上,您可以随时使用那里的下载链接。请注意,使用浅层克隆有一些注意事项:

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

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

此外,正如 positron 指出的那样,您也可以这样做git archive

于 2013-04-15T09:11:11.747 回答
3

您可以使用浅克隆

git clone --depth=1 git://url/of/repo

但是,您将无法提交/推送在浅克隆中所做的更改。

于 2013-04-15T09:09:15.710 回答
3

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

git archive --format=tar --remote=gitolite@server:repo.git HEAD | bzip2 > repo-snapshot.tar.bz2
于 2013-04-15T09:13:39.190 回答