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